gpt4 book ai didi

c# - 从另一个集合的内容中过滤一个项目集合

转载 作者:行者123 更新时间:2023-11-30 15:12:46 25 4
gpt4 key购买 nike

这曾经对我有用,但后来失败了。我只想返回那些包含所有过滤器的项目,而不是像现在这样至少返回一个过滤器。这里有什么问题?

private IQueryable<IndexItem> FilteredIndex (IQueryable<IndexItem> index, IEnumerable<string> filters)

{

var filteredIndex= from f in filters.AsQueryable()
where f.Length>0
from i in index
where i.FilterNames.Contains(f)
select i;
return filteredIndex;
}

最佳答案

直截了当。对于索引中的给定项目,检查给定项目包含该过滤器的所有过滤器是否为真。有了这个,只需从索引中选择给定条件为真的所有项目。

index.Where(item => 
filters.All(filter => item.FilterNames.Contains(filter)))

我不确定是否需要检查长度是否大于零,但它很容易集成。

index.Where(item => 
filters.All(filter =>
(filter.Length > 0 ) || (item.FilterNames.Contains(filter))))

它适用于 LINQ to Objects,我想它可以满足您的需求,但我不确定它是否适用于 LINQ to SQL。

关于c# - 从另一个集合的内容中过滤一个项目集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/711959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com