理解Lambda表达式才能更好的使用Linq
下面代码使用 Lambda 表达式用来创建匿名函数 升级演化,所有输出结果均为5,不再贴出来了,注解少,如果是vs 2022 可以直接粘贴使用
//委托升级演化
var sum1 = A.Add;
Console.WriteLine(sum1(2, 3));
//匿名函数实例化委托
var sum2 = delegate (int a, int b)
{
return a + b;
};
Console.WriteLine(sum2(2, 3));
//Lambda省略写法
var sum3 = (int a, int b)=>
{
return a + b;
};
Console.WriteLine(sum3(2, 3));
//没有声明类型,使用Func里面的自行推断,类似var
Func<int,int,int> sum4 = (a, b) =>
{
return a + b;
};
Console.WriteLine(sum4(2, 3));
//更省略写法,返回1行时,省略return 和{}
Func<int, int, int> sum5 = (a, b) => a + b;
Console.WriteLine(sum5(2, 3));
//同上
var sum6 = (int a,int b) => a + b;
Console.WriteLine(sum6(2, 3));
//无返回值也可以省略
var sum7 = (int a, int b) =>Console.WriteLine(a + b);
sum7(2, 3);
class A
{
public static string Add(int a, int b)
{
return $"{a+b}";
}
}
若要创建 Lambda 表达式,需要在 Lambda 运算符左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块,任何 Lambda 表达式都可以转换为委托类型。
?: 运算符
布尔表达式?正确结果:错误结果
int i= 10>5?10:0;
// i 赋值10
下面直接粘贴了微软的链接,以供参考,有些我也没用过
- => 运算符 - C# 参考 | Microsoft Docs 简单且必须
- + 和 += 运算符 - C# 参考 | Microsoft Docs 委托、算数
- - - 和 -= 运算符 - C# 参考 | Microsoft Docs 算数、委托
- ?? 和 ??= 运算符 - C# 参考 | Microsoft Docs
- :: 运算符 - C# 参考 | Microsoft Docs
- await 运算符 - C# 参考 | Microsoft Docs
- is 运算符 - C# 参考 | Microsoft Docs
- nameof 表达式 - C# 参考 | Microsoft Docs
- new 运算符 - C# 参考 | Microsoft Docs
- sizeof 运算符 - C# 参考 | Microsoft Docs
- stackalloc 表达式 - C# 参考 | Microsoft Docs
- switch 表达式 - C# 参考 | Microsoft Docs
- with 表达式 - C# 参考 | Microsoft Docs
- 运算符重载 - C# 引用 | Microsoft Docs
Linq如何使用(一)委托Delegate - 简书 (jianshu.com)
Linq如何使用(三)使用Linq-自己写一个实现方法 - 简书 (jianshu.com)
Linq如何使用(四)-哪些地方用,如何用 - 简书 (jianshu.com)