可能重复:
How do I use LINQ Contains(string[]) instead of Contains(string)
假设我有以下类和对象:
class Product
{
public int ProductId { get; set; }
public string ProductDesc { get; set; }
}
string[] arrayString = new string []{"A", "B", "C", "D"};
List<Product> products = new List<product>();
这是代码:
var filteredProducts = new List<product>();
foreach(var searchString in arrayString)
{
filteredProducts.Union(Products.Where(p => p.ProductDesc.Contains(searchString)));
}
相当于:
var filteredProducts = products.Where(p => p.ProductDesc.Contains(arrayString.Select(s => s).ToString()));
如果不是这样,那么如何使用LINQ重写第一个代码片段?
答案 0 :(得分:8)
不,等效的LINQ表单是
var filteredProducts = products.Where(p =>
arrayString.Any(s => p.ProblemDesc.Contains(s));
大声说话:
选择
中arrayString
中任意一个字符串的所有产品 包含在产品的ProblemDesc
。