我有一个类型列表的实体
名单
public class OrderLine
{
public string productCode;
public int quantity;
}
Run Code Online (Sandbox Code Playgroud)
如果productCode等于某些产品,我需要从上面的列表中删除项目.
List<string> ProductsToBeExcluded = new List<string>(){"1234","1237"};
Run Code Online (Sandbox Code Playgroud)
所以,从List<OrderLine>我需要删除等于1234和1237的产品
我试过了
创建一个List<string>从List<OrderLine>使用
List<OrderLine> OrderLines = GetOrderLines();
var ol = from o in OrderLines
select o.ProductCode;
Run Code Online (Sandbox Code Playgroud)2.
List<string> ProductsToBeExcluded = new List<string>(){"1234","1237"};
var filtered = OrderLines.Except(ProductsToBeExcluded);
Run Code Online (Sandbox Code Playgroud)
如何进一步删除
谢谢
在这种情况下,你不需要LINQ,但可以直接使用List<T>.RemoveAll,而不是
OrderLines.RemoveAll(x => ProductsToBeExcluded.Contains(x.ProductCode));
Run Code Online (Sandbox Code Playgroud)