zoukankan      html  css  js  c++  java
  • 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");

      

  • 相关阅读:
    构建之法读书笔记 第4章 两人合作
    ASE19 团队项目 alpha 阶段 Frontend 组 scrum9 记录
    ASE —— 第二次结对作业
    ASE —— 第一次结对作业
    高级软件工程 —— 第一周博客作业
    软工个人总结
    六月上团队项目心得
    团队项目心得
    结对编程收获
    结对作业——随机生成四则运算(Core 第7组)
  • 原文地址:https://www.cnblogs.com/maitian-lf/p/3655682.html
Copyright © 2011-2022 走看看