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

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

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

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

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

这里写图片描述

 


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

// 方法二:倒着遍历,角标每次自减。
posted @ 2016-11-22 18:14  霍莉雪特  阅读(1038)  评论(0编辑  收藏  举报