迭代的更改列表

时间:2012-09-17 21:16:07

标签: coding-style

我听说改变你在迭代中迭代的列表并不好。

示例(伪代码):

for (int i = 0; i < someList.length(); i++) {
  someList.getAt(i).doSomething();
}

为什么?会有副作用吗?

2 个答案:

答案 0 :(得分:0)

制作副本。改变这一点,迭代原始。

否则迭代器将不知道所做的更改。更多信息:

Modifying list while iterating

答案 1 :(得分:0)

这样的事情会更好。

for_each(E item in somelist)
{
     item.doSomeThing();
}

E / Item可以是任何东西(客户,整体,双打)