rt 是后面元素的index--吗?
假如我对泛型遍历的时候(for 或 foreach)在满足条件时移除其中的元素,那后面的遍历过程会不会出错?

解决方案 »

  1.   

    在for循环中不会受到影响,在foreach循环中不允许你直接删除List<int> sl = new List<int>();
                sl.Add(1);
                sl.Add(2);
                sl.Add(3);
                sl.Add(4);
                sl.Add(5);            int count = sl.Count - 1;
                for (int i = count; i >= 0; i--)
                {
                    if (sl[i] % 2 == 1)
                    {
                        sl.RemoveAt(i);
                        continue;
                    }
                    Console.WriteLine(sl[i]);
                }
      

  2.   

    但是记得在for里面删的时候要倒着删,不能顺着删
      

  3.   

    就像1,2楼说的,要删除要倒序遍历,foreach是只读的,不允许删除操作,不然会抱错
      

  4.   

    但是记得在for里面删的时候要倒着删,不能顺着删
      

  5.   

    以前一直不晓得for语句和foreach语句的区别,都混着用的。