错误修改集合

时间:2013-06-16 01:04:54

标签: c#

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

2 个答案:

答案 0 :(得分:3)

如果您尝试添加或删除正在循环播放的集合中的项目,您将收到InvalidOperationException

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

答案 1 :(得分:1)

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

相关问题