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");

      

  • 相关阅读:
    数论-FTT 和 NTT
    数论-FFT高精度乘法
    树链剖分-模板题 HAOI2015
    图论-最小生成树模板
    图论-次短路求法
    图论-某图论专练 Round3 (April, 2018)
    动规-某动规专练 Round1 (April, 2018)
    动规-某动规专练 Round2 (April, 2018)
    Java IO: 并发IO
    Java IO: Reader And Writer
  • 原文地址:https://www.cnblogs.com/maitian-lf/p/3655682.html
Copyright © 2011-2022 走看看