0

在将元素添加到 List<> 时,我总是得到集合被修改错误,而它正在用于 for i 或 foreach 循环,这使得跨线程有点复杂。如果修改了集合,我是否缺少一个不会使枚举数无效的特殊类?

4

2 回答 2

3

如果您尝试从您正在循环的集合中添加或删除项目,那么您将收到一个InvalidOperationException.

为避免这种情况,您需要创建和迭代当前正在从中迭代的数组/列表的副本,或者创建一个临时列表来托管您所做的更改,然后使用该列表来更新您的原始源。

于 2013-06-16T01:13:16.550 回答
1

至于从集合中删除(删除)项目,您还可以向后迭代集合的副本并根据需要删除项目,这不会造成麻烦,因为它不会对剩余项目的索引产生负面影响被迭代。

于 2013-06-16T01:23:36.240 回答