首页 > 其他 > 详细

C#匿名函数与Lambda表达式

时间:2014-04-10 19:42:13      阅读:474      评论:0      收藏:0      [点我收藏+]

anonymous function that you can use to create delegates or expression tree types.‘ data-guid="4a4b280e8524e689c67e7afbd3a7fec8">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 表达式优化的形式: 

bubuko.com,布布扣
 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");
bubuko.com,布布扣

 

 

 

 

  

 

C#匿名函数与Lambda表达式,布布扣,bubuko.com

C#匿名函数与Lambda表达式

原文:http://www.cnblogs.com/maitian-lf/p/3655682.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!