【C#进阶九】C#中的Lambda表达式
创始人
2024-02-09 04:36:09
0

文章目录

    • 1.Lambda 表达式
    • 2. lambda 表达式的输入参数
    • 3.Lambda 表达式中的类型推理

1.Lambda 表达式

"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式。优点是Lambda简化了匿名委托的使用,减少开发中需要编写的代码量。

Lambda 表达式的形式:

//表达式为其主体
(input-parameters) => expression//表达式 lambda 的主体可以包含方法调用。
//语句块作为其主体
(input-parameters) => {  }//语句 lambda 的主体可以包含任意数量的语句;但是,实际上通常不会多于两个或三个。

可在需要委托类型或表达式树的实例的任何代码中使用 lambda 表达式

例如:

Func square = x => x * x;
Console.WriteLine(square(5));
//输出:25int[] numbers = { 2, 3, 4, 5 };
var squaredNumbers = numbers.Select(x => x * x);
Console.WriteLine(string.Join(" ", squaredNumbers));
// Output:
// 4 9 16 25

2. lambda 表达式的输入参数

//如果 lambda 表达式不返回值,则可以将其转换为 Action 委托类型之一;否则,可将其转换为 Func 委托类型之一。
//无输入,也不返回值
Action line = () => Console.WriteLine();//一个参数,有返回值,Func中第一个参数为输入参数的类型,第二个参数为输出参数的类型
Func cube = x => x * x * x;//编译器无法推断输入参数的类型,可以显式指定类型
Func isTooLong = (int x, string s) => s.Length > x;

3.Lambda 表达式中的类型推理

//如果要查询 IEnumerable,则输入变量将被推断为 Customer 对象
customers.Where(c => c.City == "London");//lambda 类型推理的一般规则如下:
//    Lambda 包含的参数数量必须与委托类型包含的参数数量相同。
//    Lambda 中的每个输入参数必须都能够隐式转换为其对应的委托参数。
//    Lambda 的返回值(如果有)必须能够隐式转换为委托的返回类型。

有关于Lambda更多知识请看参考资料:

Lambda 表达式 - C# 引用 | Microsoft Learn

相关内容

热门资讯

今日起,贵州-广西东兴实现高铁... (转自:贵阳晚报)7月1日上午,随着东兴市至广州南D580次、东兴市至西安北G3438次列车依次驶离...
魔兽世界 亡灵序曲的作曲、演奏... 魔兽世界 亡灵序曲的作曲、演奏者是谁?dreamtale的作品
旱涝并存,今年汛期如何应对? 转自:新华社7月1日,我国北方地区进入主汛期,这也意味着全国全面进入主汛期。当天,水利部举行防汛会商...
来看!广西这里的瑶族阿妹晒嫁衣 6月30日(农历六月初六)清晨,当第一缕阳光穿透薄雾照亮龙脊梯田,龙胜各族自治县龙脊镇大寨村瞬间被“...
中国共产党第一次全国代表大会纪... 7月1日,观众在中国共产党第一次全国代表大会纪念馆参观。当日,中国共产党第一次全国代表大会纪念馆举办...
陈兴冶任上海市实验学校校长,已... 7月1日,上海市实验学校举行干部宣布大会。上海师范大学党委书记林在勇、党委组织部部长史佳华出席会议。...
38家外国律所,加入北京律师共... 转自:北京日报客户端近日,北京市律师协会举办共建“一带一路”涉外法律服务研讨会,发布了北京律师共建“...
赛力斯(601127.SH)6... 赛力斯(601127.SH)发布公告,公司2025年6月新能源汽车销量为4.61万辆,同比增长4.4...
胡润报告出炉,中国富人也不宽裕... (转自:大公馆)01最近,胡润发布了高净值人群消费相关的报告,报告中披露了一个关键信息:我国富人数量...
程实:HIBOR低谷之后有望温... 香港金管局并不主动设定本地利率,而是根据市场需求注入流动性,HIBOR出现技术性下滑,属于机制内的可...