关于c#:使用LINQ删除List中的项目

Removing items in List using LINQ

本问题已经有最佳答案,请猛点这里访问。

我有一些实体的类型列表

1
2
3
4
5
6
7
public class OrderLine
{
   public string productCode;
   public int quantity;


}

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

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

所以,从EDOCX1[0]中,我需要删除等于1234和1237的产品

我试过了

  • 使用List创建List

    1
    2
    3
      List<OrderLine> OrderLines = GetOrderLines();
      var ol = from o in OrderLines
            select o.ProductCode;
  • 2。

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

    我该如何进一步拆除

    谢谢


    在这种情况下,您不需要LINQ,只需使用List.RemoveAll

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

    使用接受谓词的ListRemoveAll方法

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