【发布时间】:2014-09-06 14:35:43
【问题描述】:
出现错误收藏已被修改;枚举操作可能无法执行。
var toUpdateItm = MC_CRM_T001A.ItemDetails
.Where(X => X.CatNo == SelectedCRM_T001A.CatNo);
foreach (var itm in toUpdateItm)
{
int x = MC_CRM_T001A.PartDetails.IndexOf(MC_CRM_T001A.PartDetails
.Where(X => X.cat_item_id == itm.id)
.FirstOrDefault()
);
if (x >= 0 && x!=null)
{
MC_CRM_T001A.PartDetails.RemoveAt(x);
}
}
foreach (var itm in toUpdateItm)
{
if (itm.CatNo == SelectedCRM_T001A.CatNo)
{
MC_CRM_T001A.ItemDetails.Remove(itm);
}
}
【问题讨论】:
-
您不能在迭代集合时修改它!喜欢 var toUpdateItm = MC_CRM_T001A.ItemDetails.Where(X => X.CatNo == SelectedCRM_T001A.CatNo).ToList();
-
代码是否必须修改现有集合?您可以非常轻松地创建一个只包含您想要的项目的新集合,然后用新集合替换原始集合。
标签: c# linq collections