C#中匿名委托以及Lambda表达式的实例详解

C#中匿名委托以及Lambda表达式的实例详解,第1张

概述C#中匿名委托以及Lambda表达式的实例详解 一. C#从1.0到4.0, 随着linq,泛型的支持,代码越来越简单优雅

 1 int[] nums = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; 2             IEnumerable<int> newNums = from n in nums where n > 0 select n; 3             newNums = newNums.Where(new Func<int,int, bool>(delegate(int i,int index) { return i < index; })); 4             newNums = newNums.Where(new Func<int, int, bool>((int i, int index)=> i < index)); 5             newNums = newNums.Where(delegate(int i, int index) { return i < index; }); 6             newNums = newNums.Where((i, index) => i < index); 7             foreach (var i in newNums) 8             { 9                 Console.Writeline(i);10             }

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

1.创建两个实体类

 1     public class Store 2     { 3         public string ID; 4         public string name; 5     } 6     public class Person 7     { 8         public string name { get; set; } 9         public int age { get; set; }10         public string StoreID { get; set; }11     }

2.插入数据

 1             var Stores = new List<Store>() 2             { 3                 new Store() { ID="1",name="1班"}, 4                 new Store() { ID="2",name="2班"} 5             }; 6  7             var Persons = new List<Person>() 8             { 9                 new Person() { name="p1",age=1, StoreID="1"},10                 new Person() { name="p2",age=2, StoreID="1"},11                 new Person() { name="p3",age=3, StoreID="1"},12                 new Person() { name="p4",age=4, StoreID="2"},13                 new Person() { name="p5",age=5, StoreID="1"},14                 new Person() { name="p6",age=6, StoreID="2"},15                 new Person() { name="p7",age=7, StoreID="1"},16                 new Person() { name="p8",age=8, StoreID="1"}17             };

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

1             var plst = Persons.Where(o => o.age > 3).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 });2             foreach (var p in plst)3             {4                 Console.Writeline(p.storename + "有" + p.Count + "个人");5             }

4.输出

2班有2个人1班有3个人
总结

以上是内存溢出为你收集整理的C#中匿名委托以及Lambda表达式的实例详解全部内容,希望文章能够帮你解决C#中匿名委托以及Lambda表达式的实例详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1212559.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存