操作Dictionary,报“集合已修改;可能无法执行枚举操作。” dictionaryforeach 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 foreach (int i in dic.Keys)改为 foreach (int i in dic.Keys.ToArry())这样就不会产生异常了。 var dic = new Dictionary<int, bool>(); for (var i = 0; i < 10; i++) { dic.Add(i, false); } foreach (var i in dic.Keys.ToArray()) { dic[i] = false; } 找到原因了:Dictionary的key和value都是只读的 如果修改便会提示集合已修改,可能无法执行枚举操作。所以一般value如果为类的对象,更改value的成员是没有问题的,但如果为值类型,修改相当于把装箱的对象替换了。楼上的两位给的代码编译通不过,没有keycollection没有ToArray方法,不过思路是可以的。 网站应用的全局变量问题 C#中可以动态定义变量名吗? 关于将数据库内容读到数组中 有没有谁有网址 是详细介绍 水晶报表的? 帮忙用C#做出这题 求助,remoting 的主机设置 使用Remoting做过大型工程请进 .NET Remoting内存泄漏问题(急!) 问几个socket编程的问题~~~~ 求个正则 TreeView获取不到选中的父节点的值 ScriptControlClass简单问题
改为
foreach (int i in dic.Keys.ToArry())
这样就不会产生异常了。
var dic = new Dictionary<int, bool>();
for (var i = 0; i < 10; i++)
{
dic.Add(i, false);
}
foreach (var i in dic.Keys.ToArray())
{
dic[i] = false;
}