【C#】删除集合(Collection)里的元素(Item)

时间:2023-03-09 18:34:14
【C#】删除集合(Collection)里的元素(Item)

问题:C#中如果想要删除一个集合中的所有元素,直接for循环边读边删除是不可行的。因为每删除一个元素,后面的元素就会往前排,即它们的索引会向前-1,然后i还是正常的自增,就会跳过下一个元素。

// 错误的写法
for (int i = 0 ; i < list.Count ; i++ ){
list.RemoveAt[i];
}

启发:搜了下一,看到了很清楚的解释:

http://bbs.****.net/topics/390121237

【C#】删除集合(Collection)里的元素(Item)


// 方法一:每次移除元素时,手动让角标在本次循环中不自增。
for (int i = 0 ; i < list.Count ; i++ )
{
  list.RemoveAt[i];
  i--;
} // 方法二:倒着遍历,角标每次自减。

相关文章