Cic*_*ami 1 c# linq foreach select
假设我有以下类和对象:
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>();
Run Code Online (Sandbox Code Playgroud)
这段代码是:
var filteredProducts = new List<product>();
foreach(var searchString in arrayString)
{
filteredProducts.Union(Products.Where(p => p.ProductDesc.Contains(searchString)));
}
Run Code Online (Sandbox Code Playgroud)
相当于:
var filteredProducts = products.Where(p => p.ProductDesc.Contains(arrayString.Select(s => s).ToString()));
Run Code Online (Sandbox Code Playgroud)
如果不是这样,那么如何使用LINQ重写第一个代码片段?
不,等效的LINQ形式是
var filteredProducts = products.Where(p =>
arrayString.Any(s => p.ProblemDesc.Contains(s));
Run Code Online (Sandbox Code Playgroud)
大声说话:
选择这在字符串中的任何一个产品都
arrayString
包含内的产品的ProblemDesc
.
归档时间: |
|
查看次数: |
1787 次 |
最近记录: |