zoukankan      html  css  js  c++  java
  • C#3.0之神奇的Lambda表达式和Lambda语句

    “Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式 x => x * x 读作“x goes to x times x”。可以将此表达式分配给委托类型。

         表达式在右边的 Lambda 表达式称为“Lambda 表达式”。 Lambda 表达式在构造表达式目录树时广泛使用。Lambda 表达式返回表达式的结果,并采用以下基本形式:

    (input parameters) => expression

         

         Lambda 语句与 Lambda 表达式类似,只是语句括在大括号中:

    (input parameters) => {statement;}

         => 运算符具有与赋值运算符 (=) 相同的优先级,并且是右结合运算符。

         Lambda 用在基于方法的 LINQ 查询中,作为诸如 Where 和 Where(IQueryable, String, array<Object>[]()[]) 等标准查询运算符方法的参数。

         在 is 或 as 运算符的左侧不允许使用 Lambda。

         适用于匿名方法的所有限制也适用于 Lambda 表达式。

    delegate void Del(int x, int y);

    Del d = (m, n) => { int r = m + n; Response.Write(r); };
    d(6, 4); 
    //result: 10

    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
    int oddNumbers = numbers.Count(n => n % 2 == 1);
    //result: 5

    var lessThan6 = numbers.TakeWhile(n => n < 6);
    Response.Write(lessThan6.Count());
    //result: 4

    delegate int del(int i);
    del myDelegate = x => x * x;
    Response.Write(myDelegate(5); 
    //result: 25
     
    原文:http://blog.itpub.net/12639172/viewspace-464474/
  • 相关阅读:
    收集 关于php的博文
    hdwiki中插件开发指南
    MySQL中“”的坑
    SpringBoot生成验证码
    Spring中的循环依赖问题
    深入理解AQS(抽象队列同步器)
    JUC下线程的三种等待唤醒机制
    关于List集合的去重
    MySQL:去除 字符串
    MySQL:Can't connect to MySQL server on 'localhost'(10061)
  • 原文地址:https://www.cnblogs.com/devhuichen/p/5000323.html
Copyright © 2011-2022 走看看