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