Rob*_*Rob 12 .net linq arrays filter
我有一个对象(产品),其属性类型为'array',
例如product.tags = {"tag1","tag2","tag9"}
我有一个输入标签数组来过滤.
......但这不太合适:
List<string> filterTags = new List<string>() { "tag1", "tag3" };
var matches = from p in products
where p.Tags.Contains(filterTags)
select p;
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢.
Ahm*_*eed 28
什么是Contains
真正的意思来实现?是否Tags
需要存在所有项目filterTags
?或者至少其中一个?对于后者使用Any
和前者使用All
.您的where
行将更改为:
where p.Tags.Any(tag => filterTags.Contains(tag))
Run Code Online (Sandbox Code Playgroud)
要么
where p.Tags.All(tag => filterTags.Contains(tag))
Run Code Online (Sandbox Code Playgroud)