博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【C#】Lambda
阅读量:6212 次
发布时间:2019-06-21

本文共 1543 字,大约阅读时间需要 5 分钟。

介绍  

  Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的 匿名函数 。 

通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。

若要创建 Lambda 表达式,需要在 Lambda 运算符 左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块。

例如,lambda 表达式 x => x * x 指定名为 x 的参数并返回 x 的平方值。 如下面的示例所示,你可以将此表达式分配给委托类型:

delegate int del(int i); 

static void Main(string[] args) 

    del myDelegate = x => x * x; 

    int j = myDelegate(5); //j = 25 

}

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

使用 Lambda 表达式创建该委托最为方便

Func和lambda

  更加简化了代码量,此时就不用像上面一样就行声明委托直接可以用

public static void LambdaFunc()

        {

            Func<string, string, string> getFunc = (p1, p2) =>

            {

                return p1 + "    " + p2;

            };

            Console.WriteLine(getFunc("我是第一个参数","我是第二个参数"));

        }

Linq和lambda

    //获取所有的用户ID

            List<string> gidList = Users.Select(p => p.Gid).ToList();

           //获取所有大于6的集合

            aaList = retList.Where(p => p > 6).ToList();

表达式 lambda

  表达式位于 => 运算符右侧的 Lambda 表达式称为“表达式 lambda”。

仅当 lambda 只有一个输入参数时,括号才是可选的;否则括号是必需的。 括号内的两个或更多输入参数使用逗号加以分隔:(x, y) => x == y

使用空括号指定零个输入参数:() => SomeMethod()

TestDelegate del = n => { string s = n + " World";

                          Console.WriteLine(s); };

异步 lambda

  通过使用 async 和 await 关键字,你可以轻松创建包含异步处理的 lambda 表达式和语句。 例如,下面的 Windows 窗体示例包含一个调用和等待异步方法 ExampleMethodAsync的事件处理程序。

private async void button1_Click(object sender, EventArgs e) 

    { 

        // ExampleMethodAsync returns a Task. 

        await ExampleMethodAsync(); 

        textBox1.Text += "\r\nControl returned to Click event handler.\n"; 

    } 

    async Task ExampleMethodAsync() 

    { 

        // The following line simulates a task-returning asynchronous process. 

        await Task.Delay(1000); 

    }  

参考:

 

转载于:https://www.cnblogs.com/peterYong/p/10138075.html

你可能感兴趣的文章
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
高仿Instagram 页面效果android特效
查看>>
2016 年总结
查看>>
将String转化成Stream,将Stream转换成String
查看>>
java路径Java开发中获得非Web项目的当前项目路径
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>