当前位置 : 主页 > 网络编程 > net编程 >

C# 报错 Collection was modified

来源:互联网 收集:自由互联 发布时间:2023-09-06
错误 Collection was modified; enumeration operation may not execute 翻译是 集合已修改;枚举操作可能无法执行。也就是说我们在遍历集合等可迭代元素时,进行了集合的修改导致的错误。本质上因

错误 Collection was modified; enumeration operation may not execute

翻译是 集合已修改;枚举操作可能无法执行。也就是说我们在遍历集合等可迭代元素时,进行了集合的修改导致的错误。 本质上因为Collection返回的IEnumerator把当前的属性暴露为只读属性,所以对其的修改会导致运行时错误,只需要把foreach改为for来遍历就好了。 首先,我们知道要使用Foreach in语句需要满足下列条件: 1.迭代集合实现了System.Collections.IEnumerable或者System.Collections.Generic.IEnumerable<T>接口; 2.有public Enumerator GetEnumerator();方法 3.GetEnumerator的返回类型是Enumerator,那就必须有Current属性和MoveNext方法 其实1,2,3是一个东西,关联性很强。 而当前的的current属性以及值都是只读的,所以不能进行修改。

解决方案:

将foreach 循环改变成for循环。。

【文章出处:香港站群服务器 http://www.558idc.com/hkzq.html 复制请保留原URL】
上一篇:Python脚本批量转换Webp为png或jpg
下一篇:没有了
网友评论