【问题标题】:Removing items in List using LINQ [duplicate]使用 LINQ 删除列表中的项目 [重复]
【发布时间】:2014-02-18 06:46:11
【问题描述】:

我有一个实体类型的列表

列表

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


}

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

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

所以,我需要从 List&lt;OrderLine&gt; 删除等于 1234 和 1237 的产品

我试过了

  1. 使用从List&lt;OrderLine&gt; 创建一个List&lt;string&gt;

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

2.

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

如何进一步删除

谢谢

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    在这种情况下,您不需要 LINQ,但可以改用 List&lt;T&gt;.RemoveAll

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

    【讨论】:

      【解决方案2】:

      使用接受谓词的ListRemoveAll 方法

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多