System.InvalidOperationException: 集合已修改;可能无法执行枚举操作。

简介:         foreach是取只读的,在取的时候数据不能变(包括修改,删除,添加等)。要避免这个问题,就应该使用for循环。         以前没有考虑过对collection类型对象操作时for 和foreach的区别,总感觉foreach更方便一些。今天写了个foreach循环来遍历一个Dictionary,之后在foreach体内又对其添加,表面上逻辑和写法看着没错,但在

        foreach是取只读的,在取的时候数据不能变(包括修改,删除,添加等)。要避免这个问题,就应该使用for循环。

        以前没有考虑过对collection类型对象操作时for 和foreach的区别,总感觉foreach更方便一些。今天写了个foreach循环来遍历一个Dictionary,之后在foreach体内又对其添加,表面上逻辑和写法看着没错,但在运行时出现异常:查询集合已修改;可能无法执行枚举操作。查了一下,这个是使用foreach的典型的问题.

相关文章
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”线程它。”
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”线程它。”
550 0
|
7月前
|
前端开发 Java 测试技术
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
45 0
|
存储 Java
引以为戒:避免在Set中使用未重写equals和hashCode的引用对象进行去重
在日常的Java开发中,我们经常会使用Set集合来实现去重操作,确保集合中不含有重复的元素。然而,如果使用未重写equals()和hashCode()方法的引用对象进行去重,可能会导致意外的行为,最近了在项目中就遇到了这个情况,让我们深入探讨这个问题,并引以为戒,确保正确实现去重操作。
70 0
引以为戒:避免在Set中使用未重写equals和hashCode的引用对象进行去重
System.NullReferenceException:“未将对象引用设置到对象的实例。” System.Configuration.ConnectionStringSettingsCollect
System.NullReferenceException:“未将对象引用设置到对象的实例。” System.Configuration.ConnectionStringSettingsCollect
|
C++
C++中,类如果包含map/list等对象,慎用memset(0)
C++中,类如果包含map/list等对象,慎用memset(0)
126 0
|
Java Spring
Spring注入集合(数组、List、Map、Set)类型属性
Spring注入集合(数组、List、Map、Set)类型属性
|
Java 开发者
利用 Object 类解决重复操作|学习笔记
快速学习 利用 Object 类解决重复操作
111 0

热门文章

最新文章