12

这是一个非常简单的问题,但“全部”对谷歌来说是一个糟糕的关键字,哈哈。

我想获取所有类别,其中没有任何产品更新,或者没有任何产品。

换句话说,获取所有类别,其所有产品尚未更新,包括所有尚未有任何产品的类别。

这是正确的表达方式吗?

var categs = context.Categories.Where(c => c.Products.All(x => !x.Updated));
4

2 回答 2

19

它返回true。从文档(强调我的):


如果源序列的每个元素都通过指定谓词中的测试,或者序列为空,则返回值true ;否则为假。

(这也是合乎逻辑的结论。序列中的所有元素确实通过了谓词,就像我所有的女儿都超过 10 英尺高一样。我没有任何女儿的事实并没有改变陈述的真实性:)

有关它们如何工作的更多详细信息,参阅我的Edulinq 博客文章。AnyAll

于 2012-05-10T07:14:26.983 回答
4

全部“确定序列的所有元素是否满足条件。”

MSDN

我认为你的表达是正确的。你得到了所有包含未更新产品的类别。

于 2012-05-10T07:17:59.683 回答