fro*_*sty 8 c# linq generics list
我有以下方法,我希望从我的集合中删除与产品ID匹配的项目.似乎相当直接,但我得到一个例外.基本上我的收藏是不同步的.那么从集合中删除项目的最佳方法是什么?
public void RemoveOrderItem(Model.Order currentOrder, int productId)
{
foreach (var orderItem in currentOrder.OrderItems)
{
if (orderItem.Product.Id == productId)
{
currentOrder.OrderItems.Remove(orderItem);
}
}
}
Run Code Online (Sandbox Code Playgroud)
异常详细信息:System.InvalidOperationException:Collection已修改; 枚举操作可能无法执行
Kon*_*lph 28
修改循环内的集合不起作用.要解决这个问题,List
有一些方法可以对集合进行"批量"修改.在您的情况下,使用:
currentOrder.OrderItems.RemoveAll(x => x.Product.Id == productId)
Run Code Online (Sandbox Code Playgroud)