使用 LINQ 删除列表中的项目 [重复]

Posted

技术标签:

【中文标题】使用 LINQ 删除列表中的项目 [重复]【英文标题】:Removing items in List using LINQ [duplicate] 【发布时间】: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 的产品

我试过了

    使用从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);

如何进一步删除

谢谢

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

使用接受谓词的ListRemoveAll 方法

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

【讨论】:

以上是关于使用 LINQ 删除列表中的项目 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 linq 删除列表中的重复项

使用 Linq 从列表中删除与属性相交的项目

如何根据多个条件并使用 linq 从通用列表中删除项目

如何使用LINQ从列表中获取重复项?

在一个列表中查找不在另一个列表中的项目[重复]

从Python列表中的特定位置删除项目[重复]