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");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库