一. C#从1.0到4.0, 随着Linq,泛型的支持,代码越来越简单优雅

 int[] nums = { , , , , , , , , ,  };
IEnumerable<int> newNums = from n in nums where n > select n;
newNums = newNums.Where(new Func<int,int, bool>(delegate(int i,int index) { return i < index; }));
newNums = newNums.Where(new Func<int, int, bool>((int i, int index)=> i < index));
newNums = newNums.Where(delegate(int i, int index) { return i < index; });
newNums = newNums.Where((i, index) => i < index);
foreach (var i in newNums)
{
Console.WriteLine(i);
}

二.集合操作,也可适于到EF的数据库操作

1.创建两个实体类

     public class Store
{
public string Id;
public string Name;
}
public class Person
{
public string name { get; set; }
public int age { get; set; }
public string StoreId { get; set; }
}

2.插入数据

             var Stores = new List<Store>()
{
new Store() { Id="",Name="1班"},
new Store() { Id="",Name="2班"}
}; var Persons = new List<Person>()
{
new Person() { name="p1",age=, StoreId=""},
new Person() { name="p2",age=, StoreId=""},
new Person() { name="p3",age=, StoreId=""},
new Person() { name="p4",age=, StoreId=""},
new Person() { name="p5",age=, StoreId=""},
new Person() { name="p6",age=, StoreId=""},
new Person() { name="p7",age=, StoreId=""},
new Person() { name="p8",age=, StoreId=""}
};

3. 查询年龄小于3岁的人1班和2班分别有几个人

             var plst = Persons.Where(o => o.age > ).GroupBy(o => o.StoreId).Select(g => new { StoreId = g.Key, Count = g.Count() }).Join(Stores, s => s.StoreId, p => p.Id, (s, p) => new { s.StoreId, storeName = p.Name, s.Count });
foreach (var p in plst)
{
Console.WriteLine(p.storeName + "有" + p.Count + "个人");
}

4.输出

2班有2个人
1班有3个人

  

C#中匿名委托以及Lambda表达式的学习笔记的更多相关文章

  1. 委托、匿名委托、Lambda 表达式、Expression表达式树之刨根问底

    本篇不是对标题所述之概念的入门文章,重点在阐述它们的异同点和应用场景.各位看官,这里就不啰嗦了,直接上代码. 首先定义一个泛型委托类型,如下: public delegate T Function&l ...

  2. C#,委托,匿名委托,Lambda表达式

    1. 委托是什么? (1) 从数据结构来讲,委托是和类一样是一种用户自定义类型.  (2) 从设计模式来讲,委托(类)提供了方法(对象)的抽象.概括的说:委托是方法的抽象. 2. 委托类型的定义: 委 ...

  3. 匿名委托与Lambda表达式

    通过使用匿名委托(匿名方法),使编程变得更加灵活,有关委托与匿名委托请参考我的前一篇Blog<委托与匿名委托>. 继续之前示例,代码如下: static void Main(string[ ...

  4. C#高级编程(第9版) 第08章 委托、lambda表达式和事件 笔记

          本章代码分为以下几个主要的示例文件: 1. 简单委托 2. 冒泡排序 3. lambda表达式 4. 事件示例 5. 弱事件     引用方法 委托是寻址方法的.NET版本.在C++中函数 ...

  5. 委托、匿名委托和lambda表达式

    1.委托 在.NET中,委托有点类似于C/C++中的函数指针,但与指针不同的是,委托是一种安全的类型,那么我们就以实现两个数的差为例,先声明一个成员方法: public int CompareTwoV ...

  6. C#学习笔记(28)——匿名委托和Lambda表达式

    说明(2017-11-21 18:51:32): 1. 例子为求1~100的和,答案应该是5050(小学学算盘的时候,我爹就让我算,从1拨到100是多少呀?当时的我年幼无知,还不知道高斯小时候的故事, ...

  7. 帮助理解委托、匿名委托、Lambda表达式还有事件

    写了一个小程序,能够很好的认识到这三个的用法 namespace Lambda { /// <summary> /// 实现根据指定运算形式 输出结果 /// </summary&g ...

  8. 【Java】Java8新增的Lambda表达式_学习笔记

    一.Lambda表达式可以简化创建匿名内部类对象 1.不需要new XXX(){}这种繁琐代码. 2.不需要指出重写的方法名. 3.不要给出重写的方法的返回值类型. 4.Lambda相当于一个匿名方法 ...

  9. C# 委托 (一)—— 委托、 泛型委托与Lambda表达式

    C# 委托 (一)—— 委托. 泛型委托与Lambda表达式 2018年08月19日 20:46:47 wnvalentin 阅读数 2992   版权声明:此文乃博主之原创.鄙人才疏,望大侠斧正.此 ...

随机推荐

  1. ERWin7.2在Windows 8.1中生成数据库遇到的问题!

    我在Windows 8.1中使用ERWin7.2,想象以前在windows 7 或者XP里那样先预览一下要生成的SQL语句,结果我发现居然没有“preview”按钮了,自然也就无法看到要生成的SQL语 ...

  2. 如何在linux上安装使用virt-manager

    环境是centos6.5-64位操作系统. 1.准备yum源: 将CentOS6-Base-163.repo 下载到目标主机的/etc/yum.repos.d/目录. cd /etc/yum.repo ...

  3. idea debug 启动慢出现假死

    断点设置不合理引发应用启动慢问题java idea应用启动很慢|非常慢|超级慢的问题排查! 解决关于应用启动超慢这个问题,其实两年前就已经遇到过,https://blog.csdn.net/li396 ...

  4. PHP中预定义超全局数组(变量)

    PHP中许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用.超全局变量除了具有全局变量特点外,在函数或方法中无需执行global $variable:就可以访问它们. 提供超全 ...

  5. jquery源码解析:jQuery工具方法Callbacks详解

    我们首先来讲下Callbacks是如何使用的:第一个例子 function a(){} function b(){} var cb = $.Callbacks(); cb.add(a); cb.add ...

  6. iOS 轻松使用 App 数据统计

    想获取用户各项行为数据吗? 想轻松查看用户行为图表吗? 想高效进行 App 运营管理吗? 想,来我带你玩转 App 数据统计.这里我使用专业.轻便的 JAnalytics. 本文内容分为两部分:代码示 ...

  7. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

    对于 short s1 = 1; s1 = s1 + 1;由于 s1+1运算时会自动提升表达式的类型,所以结果是 int型,再赋值给 short 类型 s1时, 编译器将报告需要强制转换类型的错误.对 ...

  8. 根据浏览器判断是否为Android、ios或微信环境

    写h5页面时经常有业务逻辑需要判断页面所处的环境,这时我们可以通过navigator对象来获取浏览器相关信息加以判断,方法如下: let ua = navigator.userAgent; let i ...

  9. 对cookie,session,token,jwt的理解

    对这几个东西有点凌乱了,今天有时间整理下 cookie Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便 ...

  10. excel2010冻结行列

    https://jingyan.baidu.com/article/a24b33cd56f6bd19ff002b7c.html