博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 集合已修改 可能无法执行枚举操作 zz
阅读量:6757 次
发布时间:2019-06-26

本文共 360 字,大约阅读时间需要 1 分钟。

今天编写程序时 修改了list集合 在foreach时报 “集合已修改;可能无法执行枚举操作。”错误。

首先想到的是没有锁定集合对象。

增加了 private readonly object syncRoot = new object();

所以先尝试 lock(syncRoot){}

lock关键字用法,多线程共用对象时,操作对象时锁定对象,这样如果有别的线程访问对象,则自动加入队列等待。确保对象操作过程中准确性。

但是问题依旧,查了一下说foreach是只读的,集合如果变更就会出这个问题

于是把foreach改为 for(int i =0) 后,问题解决

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

在这里记录下 有类似问题希望对你有所帮助

转载地址:http://jjweo.baihongyu.com/

你可能感兴趣的文章
java随机生成n个不相同的整数
查看>>
DIV+CSS基础
查看>>
使用JS完成首页定时弹出广告图片
查看>>
codeforces 500c New Year Book Reading 【思维】
查看>>
Auto reloading enabled
查看>>
GitHub的使用方法
查看>>
面向对象
查看>>
首次晒出自己的工作台
查看>>
springboot之JdbcTemplate单数据源使用
查看>>
软件授权协议有什么作用,例如GPL、Apache License、CDDL、EPL这些协议有什么区别?...
查看>>
OI回忆录
查看>>
DataTable
查看>>
随题而学(一)
查看>>
[转] 前后端分手大师——MVVM 模式
查看>>
NuGet -- 如何创建及发布自己的程序包
查看>>
显示应用名称
查看>>
mac显示隐藏文件
查看>>
阅读《构造之法》2
查看>>
TPS、并发用户数、吞吐量关系
查看>>
jquery.nicescroll完美滚动条使用方法
查看>>