C# Lambda表达式是什么 - 简洁匿名函数用法
Lambda表达式是C#中用于创建匿名函数的简洁语法,以=>运算符分隔参数与逻辑,可自动转换为委托或表达式树,广泛应用于LINQ、事件处理、集合操作及异步编程等场景。
Lambda表达式是C#中用于创建匿名函数的简洁语法,以=>运算符分隔参数与逻辑,可自动转换为委托或表达式树,广泛应用于LINQ、事件处理、集合操作及异步编程等场景。

在C#中,Lambda表达式是一种简洁的语法形式,用于创建匿名函数。它允许你以更紧凑的方式编写方法逻辑,特别适合用在需要委托或函数式编程的场景中,比如LINQ查询、事件处理和集合操作。
什么是Lambda表达式?
Lambda表达式本质上是简化版的匿名方法。它使用 => 运算符,左边是输入参数,右边是执行的表达式或语句块。编译器会根据上下文将其转换为委托类型(如 Func
例如:
var squares = numbers.Select(x => x * x);button.Click += (sender, e) => MessageBox.Show("按钮被点击");
上面两行代码中的 x => x * x 和 (sender, e) => MessageBox.Show(...) 就是典型的Lambda表达式,它们没有方法名,但直接表达了行为逻辑。
Lambda表达式的语法形式
Lambda表达式有两种主要形式:表达式Lambda和语句Lambda。
- 表达式Lambda:适用于只返回一个表达式结果的场景,省略大括号和return关键字。 x => x * 2
- 语句Lambda:当逻辑较复杂时,可以使用大括号包裹多条语句。 (a, b) => {
var sum = a + b;
return sum * 2;
}
参数列表可以根据参数数量灵活书写:单个参数可省略括号,无参数则必须写空括号 () => ...。
常见应用场景
Lambda表达式在实际开发中广泛应用于以下几种情况:
- LINQ查询:筛选、投影、排序等操作中大量使用Lambda。 var adults = people.Where(p => p.Age >= 18);
- 集合操作:List.Find、FindAll、ForEach 等方法接受Predicate或Action委托。 list.ForEach(item => Console.WriteLine(item));
- 事件注册:简化事件处理逻辑,尤其适合临时处理程序。 timer.Elapsed += (e, sender) => Console.WriteLine("时间到!");
- 异步编程:配合 Task.Run 使用,快速启动后台任务。 Task.Run(() => DoWork());
var names = people.Select(p => p.Name);
与匿名方法的区别
C#早期版本使用匿名方法来实现类似功能,语法更冗长:
delegate(int x) { return x * 2; }Lambda表达式不仅更短,还支持类型推断,使代码更清晰易读。而且在LINQ to SQL等场景中,Lambda可被解析为表达式树,从而转换为SQL语句执行,这是普通委托做不到的。
基本上就这些。Lambda表达式让C#在保持类型安全的同时,拥有了函数式编程的灵活性,是现代C#开发中不可或缺的一部分。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。













