我有一个购物车行列表,想要删除所有数量为0的项目。
这是一个保存CartLine对象集合的列表:
public class Cart
{
private IList<CartLine> lines = new List<CartLine>();
public IList<CartLine> Lines { get { return lines; } set { lines = value; } }
}
public class CartLine
{
Product Product {get; set;}
int Quantity {get; set;}
}
所以类似于这样:
cart.Lines.RemoveAll(x => x.Quantity == 0)
我只能得到Remove和RemoveAt,没有RemoveAll!
在foreach循环中无法删除,会出现错误:Collection was modified; enumeration operation may not execute.
我现在已经用这段代码实现了,肯定还有更高效的方法吧?
var myList = cart.Lines.ToList();
myList.RemoveAll(x => x.Quantity == 0);
cart.Lines = myList;
好的,问题解决了!谢谢大家,这里就可以解决:
cart.Lines = cart.Lines.Where(x => x.Quantity != 0);
(该代码行为it技术相关内容)