我很抱歉再次提出这个问题,我正在通过与此相关的其他帖子,但无法理解如何根据答案修改我的代码,所以我在这里发布以寻求帮助。
以下代码抛出异常并且我试图修改我的代码,就像在其他帖子enter link description here中建议的那样
foreach (Assessment.tblMitchellLandscapeIDRow MitchellRow in objAssessment.tblMitchellLandscapeID.Rows)
{
if (MitchellRow.AssessmentVersionID == AssessmentVersionID)
DeleteMitchellLandscape(ref objAssessment, MitchellRow.MitchellID, UserFullname, ref ErrorMessage);
}
答案 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);