使用LINQ删除List中的项目

时间:2014-02-18 06:46:12

标签: c# linq

我有一个类型列表某个实体

列表

public class OrderLine
{
   public string productCode;
   public int quantity;


}

如果productCode等于某些产品,我需要从上面的列表中删除项目。

List<string> ProductsToBeExcluded = new List<string>(){"1234","1237"};

所以,从List<OrderLine>我需要删除等于1234和1237的产品

我试过了

  1. 使用

    List<string>创建List<OrderLine>
      List<OrderLine> OrderLines = GetOrderLines();
      var ol = from o in OrderLines
            select o.ProductCode;
    
  2. 2

      List<string> ProductsToBeExcluded = new List<string>(){"1234","1237"};
       var filtered = OrderLines.Except(ProductsToBeExcluded);
    

    如何进一步删除

    感谢

2 个答案:

答案 0 :(得分:7)

在这种情况下,您不需要LINQ但只能使用List<T>.RemoveAll

OrderLines.RemoveAll(x => ProductsToBeExcluded.Contains(x.ProductCode));

答案 1 :(得分:2)

使用接受谓词的List RemoveAll方法

OrderLines.RemoveAll(x => ProductsToBeExcluded.Contains(x.ProductCode));