我试图通过循环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