C# C语言中的Lambda表达式#

C# C语言中的Lambda表达式#,c#,.net,C#,.net,是否存在使用lambda表达式特别有用的情况,或者其主要用途是编写更少的代码?lambda表达式适用于,并且它们的用例基本相同 lambda还可以转换为表达式树 由于lambdas要短得多,而且更容易编写(至少对于简单的情况而言),这本身就很有帮助。将lambdas添加到语言中的理由有两个 (1) 它们使查询理解的句法转换成为可能。当你说 from customer in customers where customer.City == "London" select customer 那

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

lambda表达式适用于,并且它们的用例基本相同

lambda还可以转换为表达式树


由于lambdas要短得多,而且更容易编写(至少对于简单的情况而言),这本身就很有帮助。

将lambdas添加到语言中的理由有两个

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

from customer in customers 
where customer.City == "London" 
select customer
那就变成

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

(2) 它们可以转换为表达式树,从而使LINQ到SQL、LINQ到实体等成为可能。也就是说,它们既可以表示执行语义的能力,也可以表示检查结构的能力。

编写更简洁易读的代码不是特别有用吗?请看John Skeet的答案。这是另一个问题,嗯,当然是。但我想知道这是否是唯一的话题…:-)我喜欢“语法糖”这个表达式,我不知道。不完全一样-lambda表达式也可以转换为表达式树,而匿名方法不能。(没有“匿名委托”这样的术语-有匿名方法和匿名函数-后者是一个涵盖匿名方法和lambda表达式的术语。请提供一个表达式树的示例,好吗?Thanks@Eric-你忘了说“他们真的很酷”;@Maurizio: