foreach中不能修改元素的值

简介: foreach循环中不能修改集合元素的值,否则会报错:Collection was modified; enumeration operation may not execute. 当用foreach遍历Collection时,如果对Collection有Add或者Remove操作或者给item某个属性赋值都会有这个错误。

foreach循环中不能修改集合元素的值,否则会报错:Collection was modified; enumeration operation may not execute.

当用foreach遍历Collection时,如果对Collection有Add或者Remove操作或者给item某个属性赋值都会有这个错误。

原因是因为Collection返回的IEnumerator把当前的属性暴露为只读属性,所以对其的修改会导致运行时错误,只需要把foreach改为for来遍历就好了。

作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com  联系我,非常感谢。

目录
相关文章
|
7月前
|
前端开发 程序员
【面试题】在循环 for、for-in、forEach、for-of 、map中改变item的值,会发生什么?
【面试题】在循环 for、for-in、forEach、for-of 、map中改变item的值,会发生什么?
|
5月前
|
索引
ArrayList集合常用方法,.set可以用来生成图片和赋值命名,array.remove(1),array.set(1,“xxxx”)可以修改指定位置,array.size可以获取元素的个数
ArrayList集合常用方法,.set可以用来生成图片和赋值命名,array.remove(1),array.set(1,“xxxx”)可以修改指定位置,array.size可以获取元素的个数
|
5月前
|
前端开发
let array = [{id:‘001‘,name:‘小新‘,age:5},{ id:‘002‘,name:‘小葵‘]这样数据如何遍历,拿到其中一个值,数组中装对象如何获取其中一个固定的值
let array = [{id:‘001‘,name:‘小新‘,age:5},{ id:‘002‘,name:‘小葵‘]这样数据如何遍历,拿到其中一个值,数组中装对象如何获取其中一个固定的值
|
7月前
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
71 0
lamada List对象属性值转数组array
lamada List对象属性值转数组array
109 0
|
JavaScript 索引
v-for循环为什么要绑定key值
v-for循环为什么要绑定key值
109 0
List中移除指定元素
List中移除指定元素
96 0
|
安全 Java
遍历List移除元素的若干种方法
遍历List移除元素的若干种方法
358 0
|
C#
C# List集合赋值
list集合赋值(固定)
235 0
|
PHP
【PHP】array_flip()将数组的键和值反转 array_intersect_key()返回俩个数组的交集
【PHP】array_flip()将数组的键和值反转 array_intersect_key()返回俩个数组的交集
104 0
【PHP】array_flip()将数组的键和值反转 array_intersect_key()返回俩个数组的交集