发生了错误。收集被修改;枚举操作可能无法执行

时间:2015-05-21 01:17:52

标签: c#

我很抱歉再次提出这个问题,我正在通过与此相关的其他帖子,但无法理解如何根据答案修改我的代码,所以我在这里发布以寻求帮助。

以下代码抛出异常并且我试图修改我的代码,就像在其他帖子enter link description here中建议的那样

foreach (Assessment.tblMitchellLandscapeIDRow MitchellRow in objAssessment.tblMitchellLandscapeID.Rows)
{                                
     if (MitchellRow.AssessmentVersionID == AssessmentVersionID)
     DeleteMitchellLandscape(ref objAssessment, MitchellRow.MitchellID, UserFullname, ref ErrorMessage);
}

1 个答案:

答案 0 :(得分:1)

您无法改变正在迭代的集合。

正如一些评论者建议的那样,使用for循环,或者在循环中构建要删除的项目的集合,然后删除它们。您可能还需要修改DeleteMitchellLandscape方法。

var deleteList = new List<Assessment.tblMitchellLandscapeIDRow>();
foreach (Assessment.tblMitchellLandscapeIDRow MitchellRow in objAssessment.tblMitchellLandscapeID.Rows)
{                                
     if (MitchellRow.AssessmentVersionID == AssessmentVersionID)
         deleteList.Add(MitchellRow);
}

DeleteMitchellLandscape(ref objAssessment, deleteList, UserFullname, ref ErrorMessage);