/// <summary> /// 当你在遍历的过程中删除某个对象的时候,这时被删除的对象之后的所有对象都会往前移动一位。 /// 如果想正确的遍历整个list就需要让i从0开始重新遍历。 /// 我这里的i=-1是因为当我们进行下一次循环的时候i++,所有刚好下次循环的时候是用0开始。 /// 缺点:因为每次删除对象都嘚从新遍历,所有增加了代码执行的时间。 /// </summary> private void Test() { for(int i=lists.Count-1;i>=0;i--) { if(lists[i]==1) { lists.Remove(lists[i]); break; } } }