在LINQ中何时使用lambda表达式而不是Where子句

在LINQ中何时使用lambda表达式而不是Where子句,linq,lambda,where-clause,Linq,Lambda,Where Clause,我一直在深入研究LINQ,我正在尝试解决lambda表达式业务。我只是没有看到语法的一些细微差别带来的好处。在我看来,lambda表达式主要是使用Where子句的一种不同方式。那我为什么不使用Where子句呢?lambda表达式是否更有效 这仅仅是另一个语法上的补充,吸引了来自另一个团队的程序员,让他们在C#中感觉更舒服吗?还有其他更好的lambda表达式用例我还没有接触过吗?看看这篇文章: 通常,我们建议使用查询语法 因为它通常更简单,也更简单 可读性;然而,没有语义 方法语法和 查询语法。此

我一直在深入研究LINQ,我正在尝试解决lambda表达式业务。我只是没有看到语法的一些细微差别带来的好处。在我看来,lambda表达式主要是使用Where子句的一种不同方式。那我为什么不使用Where子句呢?lambda表达式是否更有效


这仅仅是另一个语法上的补充,吸引了来自另一个团队的程序员,让他们在C#中感觉更舒服吗?还有其他更好的lambda表达式用例我还没有接触过吗?

看看这篇文章:

通常,我们建议使用查询语法 因为它通常更简单,也更简单 可读性;然而,没有语义 方法语法和 查询语法。此外,一些 查询,例如检索 与某个元素匹配的元素数 指定的条件,或检索 具有最大值的元素 在源序列中,只能是 表示为方法调用。这个 参考文件 中的标准查询运算符 Linq命名空间通常使用 方法语法。因此,即使 开始编写LINQ查询, 熟悉如何操作是很有用的 在查询和中使用方法语法的步骤 查询表达式本身


还有这个问题:

阅读。编译器将在运行时将LINQ查询转换为Lambda表达式

在内部,编译器将把查询语法转换为更明确的lambda语法。这两种样式都没有固有的性能增益,大多数场景中生成的代码几乎与人们手工输入的代码相同

主要区别在于,使用lambda语法,您可以在任何扩展方法中链接,这些扩展方法可以关闭并返回
IEnumerable
。使用查询语法,您只能使用该语言明确支持的特定扩展方法(不同语言不同)


真正使用或不使用查询语法实际上是个人偏好的问题

在提出此类问题之前,请先阅读以下内容:该死的,你用链接打败了我!:)下面是一个如何使用Lambda和查询表达式将序列连接在一起的示例:。您可能希望编辑您的答案,以包括链接材料的相关部分,以便它位于此处,与问题位于同一网站上。