C#集合已修改:可能无法执行枚举操作

 最近老板让我开发一个绩效小工具,加了一行代码后发现报了这个错。仔细一想这其实是个低级错误,为什么呢?哦!因为可以Foreach的集合是需要实现IEnumerable接口的,因此在遍历的时候你是无法对集合进行操作的(因为集合项已经改变了,你的下一次循环不能保证修改的是原来集合中的值),无论是key还是value。其实解决方法也很简单,用For循环来代替Foreach即可。

解决方法:

这里的op.Users[i]其实就是原来的dic.Key的源

 

顺便多说一句,Foreach适合遍历输出(即不改变集合元素时的循环),当对集合项的值有改变时,选择For循环。

posted @ 2022-01-18 10:25  苏州の酱醋茶  阅读(581)  评论(0编辑  收藏  举报