LINQ Query使用where和lambda表达式返回错误结果来过滤结果

时间:2013-04-04 15:25:14

标签: linq filter lambda

使用带有条件的IEnumerable子句过滤where结果集会返回重复的条目。

这是我们用来过滤结果的查询。 linksIEnumerable,其计数为299.执行以下查询时,validLinks计数将达到588,并且每个条目都是重复的。请帮助我们确定此查询的错误。

var validLinks = links.Where(link => link.Categories
                                         .Where(category => category.!IsCatchAll)
                                         .Any());

1 个答案:

答案 0 :(得分:3)

该代码无法编译,因为!位于错误的位置。您也不需要WhereAny。试试这个:

var validLinks = links.Where(link => link.Categories.Any(category => !category.IsCatchAll);