我有過濾器的名稱列表:FILTERBYNAMES過濾一個列表與另一列表包容
我的查詢結果中的項目都包含一個名稱列表:名字
我要過濾的結果的取名字的所有項目列表包含FILTERNAMELIST至少一個名稱:
results= result.where(r=>r.NAMES.CONTAINS(...?)...?
我有過濾器的名稱列表:FILTERBYNAMES過濾一個列表與另一列表包容
我的查詢結果中的項目都包含一個名稱列表:名字
我要過濾的結果的取名字的所有項目列表包含FILTERNAMELIST至少一個名稱:
results= result.where(r=>r.NAMES.CONTAINS(...?)...?
我想你需要這樣的東西:
var results = list.Where(i => i.Names
.Any(name => filterNameList.Contains(name)));
您可以通過查看兩個名稱集的交集來解決此問題。
var filteredResult = result.Where(i => i.Names.Intersect(filter).Any());
要限制過濾器的枚舉,你可以使用一個HashSet ...
HashSet<string> hashedFilter = new HashSet<string>(filterByNames);
var results = result
.Where(x => x.Names
.Any(name => hashedFilter.Contains(name))
);