Lambda 表达式入门
Lambda 表达式本质是匿名方法,=> 左边是参数列表,右边是表达式或语句块。它在 LINQ、事件订阅、回调里无处不在,是 C# 现代写法的基础。
刚学时容易困惑的点:1) 无参数时写 () => ...;2) 单个参数时可以省略括号 x => ...;3) 多个参数要加括号 (x, y) => ...;4) 多行 lambda 要用 {} 包裹并显式 return。Action 和 Func 是常用的委托类型。
体会:lambda 让代码更简洁,但不要嵌套太多层,否则可读性差。在 LINQ 里链式调用配合 lambda 很优雅,但复杂逻辑建议拆成命名方法。
代码示例
// 无参 lambda
Action sayHi = () => Console.WriteLine("hi");
sayHi();
// 单参数 lambda(可省略括号)
Action<string> greet = name => Console.WriteLine($"hello {name}");
// 多参数 lambda
Func<int, int, int> add = (a, b) => a + b;
int r = add(3, 4); // 7
// 多行 lambda
Func<int, int, int> max = (a, b) =>
{
if (a > b) return a;
return b;
};
// 在 LINQ 中使用
var nums = new[] { 1, 2, 3, 4, 5 };
var evens = nums.Where(n => n % 2 == 0).ToList(); // [2, 4]
学习小结:以上是我学习这个知识点时的笔记和心得。技术学习没有捷径,多写多练多踩坑,自然就掌握了。如果这篇笔记对你有帮助,欢迎继续看看其他文章。