zoukankan      html  css  js  c++  java
  • lambda表达式和查询表达式

      (1)Lambda表达式定义:

       Lambda是创建匿名函数的另一种形式。它比对应的匿名方法更加的简化。因此,所有的情况都推荐使用Lambda表达式。

         它可以包括表达式和语句,并且用于创建委托和事件。

       Lambda表达式由输入参数,Lambda运算符和表达式构成。它的语法如下:(wdd)=>wdds    wdd 表示输入的参数。

        =>为运算符,wdds为表达式或者语句模块。

            例1.下面创建一个Lambda表达式:m=>m*m;  分析:输入参数m的值,然后计算出m的平方,并返回计算的结果。

          例2:创建一个Lambda表达式,并获取该值:int n=(int m)=>m*m; 分析:输入参数m,计算出m的平方,并把返回计算的结果赋值给n;

          参考代码为:

            Class Program
              {
                  delegate int delA(int m);

                  static void Main(string[] args)
                  {

              delA n= (m) => { return m*m; };
                      Console.WriteLine(e(2,3));

               Console.ReadKey();

              }

           }

           例3:创建一个Lambda表达式,并获取该值:int n=(int m,int y)=>m*y; 分析:输入参数m,y,计算出m和y的乘积,并把返回计算的结果赋值给n;

           参考代码为:

            Class Program
              {
                  delegate int delA(int m,int y);

                  static void Main(string[] args)
                  {

              delA n= (m,y) => { return m*y; };
                      Console.WriteLine(e(2,3));

               Console.ReadKey();

              }

           }

        多个Lambda表达式可以构成Lambda语句块,语句块可以放在运算符的右边,作为Lambda的主体,根据主体不同,

        Lambda表达式可以分为:表达式Lambda和语句Lambda。语句模块中可以包含多条语句,并且可以包括循环,方法

        调用和if语句等。

        如果Lambda运算符右边是一个语句块,则必须要有{和}包围语句块。

      (2)Lambda查询表达式

        查询表达式是一种查询语法表示的表达式,它用于查询和转换来自任意支持LINQ的数据源中的数据。查询表达式使用许多常见的

          C#语言构造,易读简洁,容易掌握。它由一组类似于SQL或者XQuery的声明型语法编写的字句组成,每一个字句可以包含一个或

          者多个C#表达式。这些表达式本身也可以是查询表达式,或者包含表达式。

    • 查询表达式必须以from字句开头,以select或group 字句结束。
    • from字句:指定查询操作的数据源和范围变量
    • select字句:指定查询结果的类型和表现形式。
    • where字句:指定筛选元素的逻辑条件。
    • let字句:引入用来保存查询表达式中字句查询结果的范围变量
    • order by:对查询字句进行排序操作 ,包括升序和降序。
    • group :对查询结果进行分组。
    • into字句:提供一个临时标识符,join字句,group字句或者select字句可以通过该标识符引用查询操作中的中间结果。
    • join字句:用来连接多个查询操作的数据源。
  • 相关阅读:
    Web3与智能合约交互实战
    详解 Solidity 事件Event
    iOS App迁移(App Transfer)注意点
    IDFA踩坑记录
    iOS error: -34018
    Apple 的命令行交付工具“Transporter”
    关于iOS UIWebView 加载网页,点击网页内某些控件导致 Application 'UIKitApplication:xxx.xxx.xxx' was killed by jetsam.
    苹果应用内支付详解以及如何预防刷单等行为
    iOS “弱账号” 暗转 “强账号”
    好用的敏捷开发软件推荐
  • 原文地址:https://www.cnblogs.com/CarzySunshine/p/6102342.html
Copyright © 2011-2022 走看看