我試圖通過循環40次並更改過程中的列表。循環和更改列表 - 刪除並不總是工作
這是代碼:
for (int i = 0; i < 40; i++)
{
location = rand.Next(rows.Count);
rank = rand2.Next(pondRanks.Count);
ComputerPonds[rows[location]].Rank = (PondRank)pondRanks[rank];
rows.Remove(location);
pondRanks.Remove(rank);
}
出於某種原因,刪除不會發生所有的時間,只有有時。任何人都有一個建議? 這兩個列表都是List,它們有40個元素,我想刪除元素本身。 即使在調試時我可以看到列表計數不相同(它們都有相同的初始數字,並且它們都需要在此循環中刪除)。如果有關係,我正在開發windows手機平臺。
'rows'和'pondRanks'是什麼類型?也許你打算使用'RemoveAt'來代替。 – 2013-04-27 11:36:50
正如@ChrisSinclair所說。 RemoveAt在某個位置移除。刪除尋找對象 – Rob 2013-04-27 11:39:25
除了其他答案,值得注意的是,你的循環將只執行39次...你需要將它改爲'for(int i = 0; i <= 39; i ++)'或者更喜歡的方式'for(int i = 0; i <40; i ++)'...甚至可以將40的硬值提取到名爲迭代的變量中? – 2013-04-27 11:45:14