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

      

  • 相关阅读:
    css之布局
    css之浮动
    白扯之聊聊我们的情怀
    Vue之指令
    Vue之vue.js声明式渲染
    AJAX经常遇到的那些问题
    HTTP之cookie技术
    正则表达式资料
    require.js资料
    AMD 和 CMD 的区别
  • 原文地址:https://www.cnblogs.com/maitian-lf/p/3655682.html
Copyright © 2011-2022 走看看