Visual C#核心编程之LINQ

1、Lambda表达式:左端是输入,右端是代码
  在LINQ中,lambda表达式有两种特殊的签名。返回一个布尔值的lambda表达式称为谓词。只接受一个特定类型的参数,但是返回一个不同的类型,称为投影
2、Lambda表达式
  lambda表达式封装代码,但没有使用关键字、正常的函数签名或形式化函数体
  lambda是使用lambda运算符(=>)进行定义的,左端是输入,右端是代码,类似与匿名方法
3、Lambda表达式目录树
  在表达式目录树中,代码是数据,更精确的讲,表达式目录树中的代码是用lambda表达式填充的。作为数据,可以在运行是修改甚至编辑代码
  表达式目录树用Expression类型表示,Expression对象用lambda表达式进行初始化,BinaryExpression封装一个二元表达式,然后程序提取表达式的主题、左参数和右参数
  最后程序编译并执行
  Expression<Func<int, int, int>> product = (x, y) => x * y;
      BinaryExpression body = (BinaryExpression)product.Body;
      ParameterExpression left = (ParameterExpression)body.Left;
      ParameterExpression right = (ParameterExpression)body.Right;
      Console.WriteLine("{0}\nLeft:{1}  Right:{2}", body, left, right);
      var lambda = product.Compile();
      Console.WriteLine(lambda(3, 2));
4、C#语言查询语法
  

原文地址:https://www.cnblogs.com/changweihua/p/2202409.html