这是一个非常简单的问题,但“全部”对谷歌来说是一个糟糕的关键词。
我希望获得所有类别,其中没有任何产品更新,或者没有任何产品。
换句话说,获取所有产品尚未更新的所有类别,包括尚未包含任何产品的所有类别。
这是正确的表达吗?
var categs = context.Categories.Where(c => c.Products.All(x => !x.Updated));
答案 0 :(得分:16)
返回true
。来自documentation(强调我的):
返回值
如果源序列的每个元素都通过指定谓词中的测试,或序列为空,则为true ;否则,错误。
(这也是合乎逻辑的结论。序列中所有元素确实传递了谓词,就像我女儿的所有超过10的那样我没有任何女儿的事实并没有改变声明的真实性:)
有关其工作原理的详细信息,请参阅我的Edulinq blog post on Any
and All
。
答案 1 :(得分:4)