Possible Duplicate:
How to modify or delete items from an enumerable collection while iterating through it in C#我该如何做这个特殊的foreach迭代器?
听,我不想知道基本的foreach。我谈论的是一个控制着这一错误:
"The enumerator is not valid because the collection changed."
我这样做时出现:
foreach(Image image in images)
{
if(...)
{
images.remove(image)
}
}
我相信这是处理这个问题很好,因为Java有一个特殊的迭代。那么,我该如何在C#中执行此操作? 谢谢!
但如果我这样做,我相信我会失去下一个对象,考虑到我使用的画布。例如:图像,我删除索引2的对象。所以索引2的对象将移动到索引2作为列表。因此,当我尝试获取下一个索引值3时,索引3的旧对象将位于索引2处。因此,我将失去他。 – Seva 2010-12-08 21:47:11
@Alan,这就是`--i;`这一行的用途。这会调整索引,以避免遗漏任何项目。 – 2010-12-08 21:50:10
这就是`--i`纠正的问题。去除时递减的技术很有趣。我通常写我的循环,有时倒退和双测试。 – CodesInChaos 2010-12-08 21:52:03