我有一些模式的HashSet。
HashSet<string> patternList;
我正在编写一个LINQ查询,它在对象列表上进行迭代。该对象的每个元素都有一个name属性。 如果名称与HashSet中存在的任何模式匹配,我想仅返回此列表中的那些元素。即。
(from d in listOfObjects where d.name <matches any pattern present in patternList> select d)
我知道我可以使用LINQ之外的循环来实现它,但我在想如何在LINQ中容纳它。
如果问题不明确或没有意义,请告诉我。
感谢任何建议。
答案 0 :(得分:4)
from d in listOfObjects
where patternList.Any(p => p.Matches(d.name))
select d
我不确定你是如何进行模式匹配的,但我会把它放在Any()子句中。
这将针对listOfObjects中的每个项运行每个模式,直到p.Matches()(或者您正在使用的任何内容)返回true。