在foreach 中remove 和add
来源:互联网 发布:录音软件audition 编辑:程序博客网 时间:2024/04/28 05:13
List<int> m_list = new List<int>(); m_list.Add(1); m_list.Add(2); m_list.Add(3); m_list.Add(4); m_list.Add(5); m_list.Add(6); foreach (int item in m_list) { if (item == 4) { m_list.Remove(item); } }
上面一段代码,看起来好像是没有问题的,但其实运行一下,就会发现,他会抛出EXCEPTION。
原因是当在foreach中更改了 List的数目(使用remove ,Add),这时foreach对List的数目并没有更新,所以就会产生越界。
所以解决方法就是,在foreach中remove 或 add 后,使用break 。跳转出来,就不会出现异常了。
List<int> m_list = new List<int>(); m_list.Add(1); m_list.Add(2); m_list.Add(3); m_list.Add(4); m_list.Add(5); m_list.Add(6); foreach (int item in m_list) { if (item == 4) { m_list.Remove(item); break; } } foreach(int i in m_list) { Console.WriteLine("i = {0}",i); }
- 在foreach 中remove 和add
- add & foreach (remove)
- 不要在foreach 循环里进行集合元素的 remove/add 操作
- 不要在 foreach 循环里进行元素的 remove/add 操作
- 不要在 foreach 循环里进行元素的 remove / add 操作
- 关于上个在foreach中ArrayList.Remove出错的解释
- add和remove
- foreach中使用remove问题
- java中重写TreeMap的add和remove方…
- foreach循环里进行元素的remove/add操作
- 在添加/删除''Add or Remove Programs"中不显示安装的应用程序(Hide Add/Remove Panel Entry)
- 不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁
- EventListener的add和remove
- 复制的项目,在Eclpise中的tomcat Add and Remove名称和项目名称不符问题
- c#中event内幕(add与remove)
- c#中event内幕(add与remove)
- 模拟 List 的 add 和 remove
- ArrayList的add和remove方法
- Python字节流打包拆包
- DXperience v2011 vol 2 支持Metro风格了,看来微软的Metro是有很好的前途的
- IT前辈的20年编程经验
- vi常用命令
- 事务处理-并发控制
- 在foreach 中remove 和add
- 重载为类的友元函数
- Ubuntu下彻底卸载apache2
- htmlutil
- Observer--设计模式学习笔记《二》
- 需要点智商才能看懂的恐怖故事,你能看懂多少个?
- 朴素贝叶斯分类
- SQL Server DBA三十问 (转)
- IIC 波形 解释基本操作概念