有一个模型列表:
List<string> models = new List<string>
{
"abcd1234",
"xycd9999",
"zzz999z",
"ros7777"
};
Run Code Online (Sandbox Code Playgroud)
有过滤器清单:
List<string> filterer = new List<string>
{
"cd",
"9999"
};
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用LINQ来获取包含过滤器项目的所有模型作为其名称的一部分.
对于这个例子:
因此,LINQ操作将返回两个项目的列表:"abcd1234"和"xycd9999".
var filteredList = models
.Where(m => m.Contains("/*HERE WILL BE THE FILTERER ITEMS*/"))
.Distinct()
.ToList();
Run Code Online (Sandbox Code Playgroud)
什么是正确的语法?
var filteredList = models
.Where(x => filterer.Any(y => x.Contains(y))
.ToList();
Run Code Online (Sandbox Code Playgroud)
Distinct这里没有任何用处,因为Where调用不会引入重复项(除非当然models有重复值,并且您希望删除这些重复项).