Lambda表达式在各个语言中的表达方式都不太相同,本文重点介绍C#的Lambda表达式。
首先,Lambda表达式就是一个匿名的方法/函数。
以下面的一个完整版作为例子,前面是参数,后面是返回值:
由于 Lambda表达式和委托常常一起用,所以就在这里讲委托为什么会经常用lmabda表达式。
由于 Lambda表达式就是一个匿名的方法/函数,如果想要让其赋值给某个变量,我们知道,必须是同返回值同参数的委托才可以用函数来赋值。
在C#中,Func<,,>就是一个委托,逗号中前几个是这个委托的参数,最后一个则是返回值
因此就用这个写法的委托来承接
完整示例如下:
由于参数类型可以确定,可以变成这样
再简写:return和括号都可以删去
没有参数没有返回值就是这样:
于是乎,当某个委托需要的参数是一个函数时,我们可以当然可以声明一个函数,然后将该函数赋值给委托,但是更简便的写法是写一个lambda表达式,一个匿名的函数,作为该委托的参数:
例如在List中有一个FindAll的函数,需要的参数是一个函数:
此时就可以写一个匿名表达式了
比如想找奇数,写法如下
然后再例如对于一个for循环就可以写成这样的形式: