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

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

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

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

相关文章
|
5月前
判断Object对象是否为空
判断Object对象是否为空
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”线程它。”
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”线程它。”
295 0
|
3月前
|
前端开发 Java 测试技术
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
21 0
|
8月前
|
存储 Java
引以为戒:避免在Set中使用未重写equals和hashCode的引用对象进行去重
在日常的Java开发中,我们经常会使用Set集合来实现去重操作,确保集合中不含有重复的元素。然而,如果使用未重写equals()和hashCode()方法的引用对象进行去重,可能会导致意外的行为,最近了在项目中就遇到了这个情况,让我们深入探讨这个问题,并引以为戒,确保正确实现去重操作。
45 0
引以为戒:避免在Set中使用未重写equals和hashCode的引用对象进行去重
System.NullReferenceException:“未将对象引用设置到对象的实例。” System.Configuration.ConnectionStringSettingsCollect
System.NullReferenceException:“未将对象引用设置到对象的实例。” System.Configuration.ConnectionStringSettingsCollect
|
缓存 Java vr&ar
【BUG日记】【JAVA】使用==判断两个Integer类型的值,发现if语句不起作用(正确做法:使用的判断是equals()去判断)
【BUG日记】【JAVA】使用==判断两个Integer类型的值,发现if语句不起作用(正确做法:使用的判断是equals()去判断)
174 0
使用 some , every ,和 Object.values 检查对象内的值
使用 some , every ,和 Object.values 检查对象内的值
127 0
使用 some , every ,和 Object.values 检查对象内的值
|
Java 开发者
利用 Object 类解决重复操作|学习笔记
快速学习 利用 Object 类解决重复操作