Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在将元素添加到 List<> 时,我总是得到集合被修改错误,而它正在用于 for i 或 foreach 循环,这使得跨线程有点复杂。如果修改了集合,我是否缺少一个不会使枚举数无效的特殊类?
如果您尝试从您正在循环的集合中添加或删除项目,那么您将收到一个InvalidOperationException.
InvalidOperationException
为避免这种情况,您需要创建和迭代当前正在从中迭代的数组/列表的副本,或者创建一个临时列表来托管您所做的更改,然后使用该列表来更新您的原始源。
至于从集合中删除(删除)项目,您还可以向后迭代集合的副本并根据需要删除项目,这不会造成麻烦,因为它不会对剩余项目的索引产生负面影响被迭代。