C#匿名函数与Lambda表达式

Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数。 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。在C#中的Linq中的大部分就是由扩展方法和Lambda 表达式共同来实现,如: 

1 public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
2 public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, int, TResult> selector); 

下面使用一个Where方法,体现委托向Lambda 表达式优化的形式: 

复制代码
 1   private List<Student> students = 
 2   {
 3       new Student() { Name = "xiaoming" },
 4       new Student() { Name = "liufei" }
 5   };
 6 
 7   //第一种
 8   public bool predicate(Student s)
 9   {
10       if (s.Name == "liufei")
11       {
12           return true;
13       }
14       else
15       {
16           return false;
17       }
18   }
19   Func<Student, bool> t = new Func<Student, bool>(predicate);//创建委托
20   IEnumerable<Student> result = students.Where(t);
21 
22   //第二种
23   IEnumerable<Student> result = students.Where(delegate(Student s){
24       if(s.Name == "liufei")
25       {
26           return true;
27       }
28       else
29       {
30           return false;
31       }
32   });
33 
34   //第三种
35   IEnumerable<Student> result = students.Where(s => {
36       if (s.Name == "liufei")
37       {
38           return true;
39       }
40       else
41       {
42           return false;
43       }
44   });
45 
46   //第四种
47   IEnumerable<Student> result = students.Where(s => s.Name == "liufei");
复制代码

 

 

 

 

  

 

posted @   刘珍宝  阅读(2083)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示