c#Lambda表达式的结构拆解;
时间: 2023-11-25 22:05:46 浏览: 160
C#3.0中Lambda表达式详解
5星 · 资源好评率100%
C#中的Lambda表达式可以看作是一个匿名函数,它可以在需要的时候定义并使用。Lambda表达式的一般结构如下:
```
(parameters) => expression
```
其中,parameters表示Lambda表达式的参数列表,可以是0个或多个参数,多个参数之间用逗号分隔。如果参数的类型可以推断出来,可以省略参数类型;如果只有一个参数,可以省略括号。例如:
```
() => Console.WriteLine("Hello, world!"); // 无参Lambda表达式
x => x * x // 一个参数Lambda表达式
(int x, int y) => x + y // 多个参数Lambda表达式
```
expression表示Lambda表达式的主体部分,可以是一条语句或多条语句,多条语句之间用花括号括起来。如果主体部分只有一条语句,可以省略花括号和分号;如果主体部分有返回值,可以使用return关键字返回结果。例如:
```
x => x * x // 返回参数的平方
(int x, int y) => { return x + y; } // 返回两个参数的和
() => { Console.WriteLine("Hello, world!"); } // 输出一句话
```
Lambda表达式还可以作为方法的参数,例如:
```
List<int> nums = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNums = nums.Where(x => x % 2 == 0).ToList();
```
上面的代码中,使用Where方法筛选出nums中的偶数,其中x => x % 2 == 0就是一个Lambda表达式,它作为Where方法的参数传入。在这个Lambda表达式中,x表示集合中的每一个元素,表达式x % 2 == 0表示判断x是否为偶数,如果成立就返回true,否则返回false。最终,Where方法返回所有满足条件的元素,组成一个新的集合evenNums。
阅读全文