在这两个选项中:

var result = from c in coll where c % 2 == 0 select c;

var result = coll.Where ( c => c % 2 == 0 );


哪个更好?

使用一个相对于另一个有什么好处吗?对我来说第二个看起来更好,但我想听听其他人的意见。

最佳答案

如果您只有一个或两个子句,我将使用“点符号”。当您开始进行联接,分组或引入透明标识符的任何其他操作时,查询语法将开始吸引更多人。

通常都需要尝试两种方式,并查看在特定情况下最易读的内容。

就生成的代码而言,它们在大多数情况下将完全相同。有时,您可以在点表示法中使用重载,这使其比查询表达式语法更简单,但是在大多数情况下,值可读性优于其他所有内容。

我对此主题也有一个blog post。我绝对建议开发人员对这两种选择都感到满意-例如,如果一个同事正在使用LINQ但我不了解查询表达式的基础知识,我会非常担心。 (他们不需要知道所涉及的所有翻译,但是对正在发生的事情有所了解将使他们的生活更加轻松。)

关于c# - 在C#中,from关键字优于直接方法调用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1035568/

10-11 02:15