Lambda表达式用来创建匿名函数,使用=>运算符声明lambda表达式,表达式 左侧为输入参数(没有为空),右侧为表达式主体或语句。
常见格式:x=>x+x; ()=>{ return 1;}; (x)=>{ return 1+x;}; (x,y)=>{ return x*y;};
委托>匿名函数>lambda,所以所有的lambda表达式都可以转换成委托。
下面看下代码示例:
class LambdaDemo
{
public static void DemoMain()
{
int[] arr = { 1, 2, 3, 4, 5, 6 };
Console.WriteLine(arr.Count());//输出数组元素个数
Write(string.Join(" ", arr.Count(a => a > 4)));//输出数组中大于4的元素
Write(string.Join(" ", arr.Count(a => a % 2 == 1)));//输出数组中与2取余等于1的元素
Write2(string.Join(" ", arr));//输出数组全部元素
Write3(string.Join(" ", arr.Where(a => a > 3)));//输出数组元素中大于3的元素
}
//表达式语句(单句时可以省略{})
static Action<string> Write = text => Console.WriteLine(text);
//表达式语句(多句时需要使用{}扩起来)
static Action<string> Write2 = text =>
{
text += "-Write2";
Console.WriteLine(text);
};
//泛型方法表达式语句(单句时可以省略{})
static void Write3<T>(T text) => Console.WriteLine(text);
}
输出结果: