【问题标题】:Lambda expression in C# [duplicate]C#中的Lambda表达式[重复]
【发布时间】:2011-01-21 19:30:49
【问题描述】:

是否存在使用 lambda 表达式特别有用或主要用途是编写更少代码的情况?

【问题讨论】:

  • 编写更简洁易读的代码不是特别有用吗?
  • 看看 John Skeet 的 SO 回答 here。这是另一个 SO 问题with specific uses of lambdas
  • 嗯嗯,确实如此。但我想知道它是否是唯一的主题...... :-)

标签: c# .net


【解决方案1】:

在语言中添加 lambda 的理由有两个。

(1) 它们使查询理解的句法转换成为可能。当你说

from customer in customers 
where customer.City == "London" 
select customer

变成了

customers.Where(customer=>customer.City == "London")

(2) 它们可以变成表达式树,从而使 LINQ-to-SQL、LINQ-to-Entities 等成为可能。也就是说,它们可以代表执行语义的能力检查其结构的能力

【讨论】:

【解决方案2】:

Lambda 表达式是syntactic sugar 对应anonymous methods,它们的用例大多相同。

Lambda 也可以转换为表达式树。

由于它们更短且更容易编写(至少对于简单的情况),这本身就很有帮助。

【讨论】:

  • 我喜欢“语法糖”这个表达,我不知道。
  • 完全相同 - lambda 表达式也可以转换为表达式树,而匿名方法不能。 (没有“匿名委托”这样的术语 - 有 匿名方法匿名函数 - 后者是一个涵盖匿名方法和 lambda 表达式的术语。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 2012-09-27
  • 2011-10-17
  • 2012-08-27
相关资源
最近更新 更多