C#中,Lambda表达式是一种简洁的方式来定义匿名函数。
Lambda表达式可以用于各种情况,例如传递给高阶函数、LINQ查询、事件处理程序等。
Lambda表达式的一般语法如下:
(parameters) => expression
parameters是Lambda表达式的参数列表,可以是零个或多个参数。
expression是Lambda表达式的主体,表示函数的逻辑。
- 无参数的Lambda表达式:
() => Console.WriteLine("Hello, world!");
这个Lambda表达式没有参数,只是打印了一条简单的消息。
- 有参数的Lambda表达式:
(x, y) => x + y
这个Lambda表达式有两个参数x和y,并返回它们的和。
- Lambda表达式作为高阶函数的参数:
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(x => x % 2 == 0);
这个Lambda表达式作为Where方法的参数,用于筛选出列表中的偶数。
- Lambda表达式弃元参数(discard parameter)
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var squaredNumbers = numbers.Select(_ => _ * _);
Select方法接受一个Lambda表达式作为参数,用于对列表中的每个元素进行操作。由于只关心元素的平方,而不需要使用元素本身,所以可以使用弃元参数来表示不需要使用的参数。
Lambda表达式可以非常灵活地用于各种场景,可以根据需要编写简洁、可读性高的代码。它是C#中函数式编程的重要特性之一。