最近老板让我开发一个绩效小工具,加了一行代码后发现报了这个错。仔细一想这其实是个低级错误,为什么呢?哦!因为可以Foreach的集合是需要实现IEnumerable接口的,因此在遍历的时候你是无法对集合进行操作的(因为集合项已经改变了,你的下一次循环不能保证修改的是原来集合中的值),无论是key还是value。其实解决方法也很简单,用For循环来代替Foreach即可。
解决方法:
这里的op.Users[i]其实就是原来的dic.Key的源
顺便多说一句,Foreach适合遍历输出(即不改变集合元素时的循环),当对集合项的值有改变时,选择For循环。