一. 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. django admin的自定制

    from django.contrib import admin # Register your models here. from .models import * from django.util ...

  2. sql指定值排在前面

    示例: SELECT COL1 FROM TABLE1 ORDER BY CASE WHEN COL1 = 'A' THEN 1 ELSE 2 END,COL1;//COL1为A的排在最前面,剩下的按 ...

  3. Ubuntu更新提示哈希和不匹配“Hash Sum mismatch”

    Ubuntu更新提示哈希和不匹配"Hash Sum mismatch" 今天在常规更新软件的时候,我的ubuntu报了一个错误. 应该是ubuntu程序更新转交给另外一个更新造成 ...

  4. Ionic2使用百度地图API(JS)出现白屏解决方案

    最近自学ionic2,写了一个内嵌百度地图JS的demo,实际跑起来之后出现了大家常见的白屏问题.. 最初的实现是这样的: 首先主页内嵌了一个百度地图插件 <div id="Bmap& ...

  5. 浅谈iOS开发中多语言的字符串排序

    一.前言 在iOS开发中,一个经常的场景是利用tableview展示一组数据,以很多首歌曲为例子.为了便于查找,一般会把这些歌曲按照一定的顺序排列,还会加上索引条以便于快速定位. 由于歌曲名可能有数字 ...

  6. 安装php,nginx 带debug

    gdb安装包   在CentOS6.4下使用gdb进行调试的时候, 使用bt(breaktrace)命令时,会弹出如下的提示: 头一天提示: Missing separate debuginfos, ...

  7. php中签名公钥、私钥(SHA1withRSA签名)以及AES(AES/ECB/PKCS5Padding)加密解密详解

    由于http请求是无状态,所以我们不知道请求方到底是谁.于是就诞生了签名,接收方和请求方协商一种签名方式进行验证,来取得互相信任,进行下一步业务逻辑交流. 其中签名用得很多的就是公钥私钥,用私钥签名, ...

  8. 《UltraFast设计法实践》系列目录

    最近准备开始潜心学习快速和高效的时序收敛设计了,突然想就把整个学习过程做成一个博客系列吧,虽然想想就很激动(技术狗就这么点出息--),但希望坚持下来. 这篇做个目录或者索引,不断向其中添加学习内容. ...

  9. APP元素的四大类

    一个完整的APP包括四大类:各种“栏”.内容视图.控制元素.临时视图 各种“栏”:状态栏.导航栏.标签栏.工具栏.范围栏 内容视图:列表视图.卡片式图.集合视图.图片视图.文本视图 控制元素:用于控制 ...

  10. 网络基础 01_OSI网际互联

    1 通信概述 网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的. 通信是人与人之间通过某种媒体进行的信息交流与传递. 网络通信是通过网络将各个孤立的设备进 ...