匹配所有id的过滤列表
本文关键字:过滤 列表 id | 更新日期: 2023-09-27 18:08:53
我有以下linq查询:
FilteredProducts = AllProducts.Where(p => p.Attributes.Any(a => Filters.Contains(a.ID)));
其中Filters
为List<int>
。上面的查询返回与Filters
中的任何属性id匹配的任何产品。
我如何改变这一点,以便只返回与Filters
中所有id匹配的产品(它也可以具有其他属性,但必须具有过滤器中具有id的任何属性)。
我想使用相交而不是任何,但然后我将不得不使用属性列表(我真的不想这样做)
一个可能的解决方案是反转逻辑和测试过滤器。子句
中的所有产品AllProducts.Where(p => Filters.All(fa=> p.Attributes.Any(a=> a.ID == fa)));