版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Blog2015/article/details/49341925
不要在遍历一个List 时,执行对该List 的Remove(Item)操作。
C#中会报错,Lua中可以,其他语言未知。 可以的也不推荐。
正确的方法是:
先将符合条件的 Item 放入一个 tempList 中
再在其下面 遍历 tempList, 依次对其进行Remove
两层For循环Remove时,要注意,外层必须是tempList
顺序错误时,会导致结果错误(不一定)。这是由于每次移除后,原List结构变化导致的。
如下:
错误的方式
正确的方式: