我有这样的情况,一个列表必须至少包含另一个列表的值。假设我们有一个包含值 1、2、3 的列表 A。这是包含所需值的列表。
列表 B 的值为 1、5、6、7
列表 C 的值为 1、2、3、4、7
列表 D 的值为 2、5、6
在这种情况下,我只想要列表 C,因为这是唯一包含值 1、2 和 3 的列表。
我已经试过了,但这行不通,因为它总是正确的:
query = from doc in query
let tagIds = from t in doc.Tags select t.Id
where parameters.TagIds.Except(tagIds).Count() <= parameters.TagIds.Count()
select doc;
当使用这个时:
query = from doc in query
let tagIds = from t in doc.Tags select t.Id
where !parameters.TagIds.Except(tagIds).Any<int>()
select doc;
我只获得与“必需”列表完全匹配的列表。
我的问题是,如何解决 Linq 2 SQL 查询中的情况?
最佳答案
尝试
var query = from doc in query
let tagIds = from t in doc.Tags select t.Id
where parameters.All(p => tagIds.Contains(p))
select doc;
关于c# - 如何获得至少包含另一个列表的所有值的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23290347/