C# 遍历列表并删除元素的正确方法
在 C# 中,当您遍历一个列表并同时删除元素时,可能会遇到索引失效的问题。这是因为当您删除元素时,列表的索引会发生改变,导致后续的遍历操作可能无法访问到预期元素。
例如,以下代码尝试遍历 GroundBags 列表并删除所有元素:
for (int i = 0; i < GroundBags.Count; i++)
RemoveGroundItem(GroundBags[i].Id);
这种方法在遍历过程中删除元素会造成索引失效。
为了避免这个问题,建议使用倒序遍历,从最后一个元素开始遍历,这样在删除元素时不会影响后续元素的索引。示例代码如下:
for (int i = GroundBags.Count - 1; i >= 0; i--)
{
RemoveGroundItem(GroundBags[i].Id);
}
在循环中,我们从最后一个元素开始遍历,逐个移除元素,这样就不会受到索引的变化影响。
原文地址: https://www.cveoy.top/t/topic/pcU6 著作权归作者所有。请勿转载和采集!