Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发生错误。收集被修改;枚举操作可能无法执行_C# - Fatal编程技术网

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

C# 发生错误。收集被修改;枚举操作可能无法执行,c#,C#,我很抱歉再次问这个问题,我正在浏览与此相关的其他帖子,但无法理解如何根据答案修改我的代码,因此我将其发布在这里以寻求帮助 下面的代码抛出了异常,我并没有试图像其他帖子中建议的那样修改我的代码 您不能更改正在迭代的集合 正如一些评论者所建议的,使用for循环,或者在循环中建立要删除的项的集合,然后再删除它们。您可能还需要修改deleteMitchellandscape方法 var deleteList = new List<Assessment.tblMitchellLandscapeIDR

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

下面的代码抛出了异常,我并没有试图像其他帖子中建议的那样修改我的代码


您不能更改正在迭代的集合

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

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);
var deleteList=new List();
foreach(Assessment.tblMitchellLandscapeIDRow MitchellRow in objassesment.tblMitchellLandscapeID.Rows)
{                                
if(MitchellRow.AssessmentVersionID==AssessmentVersionID)
deleteList.Add(MitchellRow);
}
DeleteMitchellandscape(参考对象评估、删除列表、用户名、参考错误消息);

在使用foreach语句对集合进行迭代时,不能修改集合(tblMitchellLandscapeID中的行)。我想这就是你的Delete方法所做的。使用
for
循环,而不是
foreach
。如果要在循环过程中从列表中删除项目,则以相反的方式进行迭代-这样可以省去调整索引器的麻烦。为循环的答案而发布的链接不是foreach。如果使用“for”循环,请记住每次删除行时从循环计数器中减去一个。
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);