Linq Where子句 - 更好地堆叠或组合?

Dan*_*ann 9 c# linq-to-objects

在为LINQ编写方法链时,我可以用两种方式之一做Where语句:

var blackOldCats = cats.Where(cat => cat.Age > 7 && cat.Colour == "noir" )
Run Code Online (Sandbox Code Playgroud)

要么

var blackOldCats = cats.Where(cat => cat.Age > 7).Where(cat => cat.Colour == "noir" )
Run Code Online (Sandbox Code Playgroud)

一个人比另一个人有什么好处吗?

不要过多担心这个例子中的数据类型,但是如果数据类型存在问题,那么也应该知道.

显而易见的一点是该对象已被引用,因此在应用程序中同时出现两个属性更容易,对吧?

Jel*_*lle 3

在您的示例中,它们是相同的,并且取决于个人喜好。由于 LINQ 的延迟执行,集合只会被迭代一次。

如果您想使用 or 运算符组合表达式,则只能使用第一个。