c# - foreach 集合被修改;枚举操作可能无法执行

标签 c# foreach

<分区>

我正在尝试运行测试生成并将一些测试输出传递给 foreach 循环,但每隔一段时间我尝试运行它停止的方法和 inforeach 循环中它给出了一个异常

System.InvalidOperationException occurred in mscorlib.dll

然后Exception在try catch中被捕获并报错

Collection was modified; enumeration operation may not execute

我不完全确定为什么会产生此错误!

最佳答案

不允许在循环内修改循环列表。因此,创建一个包含相同内容的新列表:

var predcostssubjForLoop = predcostssubj.ToList();

然后做一个

foreach (PredCost pc in predcostssubjForLoop )

但在循环内继续修改predcostssubj

作为旁注,我建议您查看这本书 Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

关于c# - foreach 集合被修改;枚举操作可能无法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703494/

相关文章:

java - 如何在迭代 <c :foreach> tag in select tag in JSP? 时从任何列表对象中删除元素

javascript - 嵌套在 querySelectors 上的 forEach

c# - 为什么画在面板上的文字会消失?

javascript - underscore _.each 和 forEach 有什么区别?

c# - 用于唯一标识节点的最佳集合是什么?

c# - Asp.net 计数用户尝试

php使用foreach将值插入数组数组

arrays - (Perl) 尝试使用简单数组编写 foreach 语句。对格式感到困惑

c# - Windows 窗体 C#,返回字符串数组始终为空

c# - c# wpf 列表框的加载屏幕