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

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

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

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

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

 


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

// 方法二:倒着遍历,角标每次自减。

相关文章:

  • 2022-12-23
  • 2021-09-27
  • 2022-12-23
  • 2021-12-26
  • 2022-12-23
  • 2022-01-05
猜你喜欢
  • 2021-08-09
  • 2022-12-23
  • 2021-08-26
  • 2021-07-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案