使用where和lambda表达式筛选结果的LINQ查询返回错误结果
使用带有条件的使用where和lambda表达式筛选结果的LINQ查询返回错误结果,linq,filter,lambda,Linq,Filter,Lambda,使用带有条件的where子句过滤IEnumerable结果集将返回重复的条目 这是我们用来过滤结果的查询链接是一个计数为299的IEnumerable。当执行下面的查询时,validLinkscount将达到588,并且每个条目都是重复的。请帮助我们确定此查询的错误 var validLinks = links.Where(link => link.Categories .Where(category =&g
where
子句过滤IEnumerable
结果集将返回重复的条目
这是我们用来过滤结果的查询<代码>链接是一个计数为299的IEnumerable
。当执行下面的查询时,validLinks
count将达到588,并且每个条目都是重复的。请帮助我们确定此查询的错误
var validLinks = links.Where(link => link.Categories
.Where(category => category.!IsCatchAll)
.Any());
该代码无法编译,因为
代码>位于错误的位置。此外,您不需要执行Where
和Any
。试试这个:
var validLinks = links.Where(link => link.Categories.Any(category => !category.IsCatchAll);
Where
的实现永远无法扩展IEnumerable
中的项数。如果计数正确,则中的lambda或其他一些代码正在扩展基础集合。抱歉,这是语法中的类型错误。您的回答(p.s.w.g)是正确的,并给出了299个结果。谢谢然而,在这个方法之后会执行更多的代码,并再次给出重复的代码。这是一个CAML查询。”我需要检查一下!!