我有一个类型列表某个实体
列表
public class OrderLine
{
public string productCode;
public int quantity;
}
如果productCode等于某些产品,我需要从上面的列表中删除项目。
List<string> ProductsToBeExcluded = new List<string>(){"1234","1237"};
所以,从List<OrderLine>
我需要删除等于1234和1237的产品
我试过了
使用
从List<string>
创建List<OrderLine>
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);
如何进一步删除
感谢
答案 0 :(得分:7)
在这种情况下,您不需要LINQ但只能使用List<T>.RemoveAll
OrderLines.RemoveAll(x => ProductsToBeExcluded.Contains(x.ProductCode));
答案 1 :(得分:2)
使用接受谓词的List
RemoveAll
方法
OrderLines.RemoveAll(x => ProductsToBeExcluded.Contains(x.ProductCode));