飞道的博客

C# Lambda表达式含义及各种写法

361人阅读  评论(0)

Lambda表达式在各个语言中的表达方式都不太相同,本文重点介绍C#的Lambda表达式。

首先,Lambda表达式就是一个匿名的方法/函数。

  以下面的一个完整版作为例子,前面是参数,后面是返回值:

 由于 Lambda表达式和委托常常一起用,所以就在这里讲委托为什么会经常用lmabda表达式。

 由于 Lambda表达式就是一个匿名的方法/函数,如果想要让其赋值给某个变量,我们知道,必须是同返回值同参数的委托才可以用函数来赋值。

在C#中,Func<,,>就是一个委托,逗号中前几个是这个委托的参数,最后一个则是返回值

 因此就用这个写法的委托来承接

完整示例如下:

 由于参数类型可以确定,可以变成这样

再简写:return和括号都可以删去

没有参数没有返回值就是这样:

于是乎,当某个委托需要的参数是一个函数时,我们可以当然可以声明一个函数,然后将该函数赋值给委托,但是更简便的写法是写一个lambda表达式,一个匿名的函数,作为该委托的参数:

例如在List中有一个FindAll的函数,需要的参数是一个函数:

此时就可以写一个匿名表达式了

比如想找奇数,写法如下

然后再例如对于一个for循环就可以写成这样的形式:


转载:https://blog.csdn.net/weixin_43757333/article/details/128996785
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场