这个问题在这里已经有了答案:
What is a Lambda?
(7 个回答)
C# Lambda expressions: Why should I use them?
(15 个回答)
1年前关闭。
我并没有真正得到 lambda 表达式。虽然它们从 ALGOL 时代就已经存在,但直到最近 Python 和 Ruby 变得非常流行时,我才开始听说它们。现在 C# 有 =>
语法,我的世界(.NET)中的人们越来越多地谈论 lamdba 表达式。
我已阅读有关 lambda 演算的 Wikipedia 文章,但我并不是真正的数学专家。从实际的角度来看,我并没有真正理解它。我什么时候使用 lambda 表达式?为什么?我怎么知道这是我应该做的?
您能否以前后格式展示如何解决 lambda 表达式问题的示例?任何命令式语言都可以,但 C# 对我来说最容易理解。
最佳答案
基本上就 C# 而言,lambda 表达式是一种创建委托(delegate)(或表达式树,但我们暂时将其放在一边)的简单方法。
在 C# 1 中,我们只能从普通方法创建委托(delegate)实例。
在 C# 2 中,我们获得了匿名方法。
在 C# 3 中,我们获得了 lambda 表达式,它类似于更简洁的匿名方法。
当你想表达一些接受一个值并返回一个值的逻辑时,它们特别简洁。例如,在 LINQ 的上下文中:
// Only include children - a predicate
var query = dataSource.Where(person => person.Age < 18)
// Transform to sequence of names - a projection
.Select(person => person.Name);
在 my article on closures 中有更全面的讨论 - 以及其他方面。 .
关于delegates - 你能解释一下 lambda 表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/187414/