C# DIctionary:集合已修改,可能无法执行枚举操作
2023-09-14 09:08:40 时间
C#中直接对集合Dictionary进行遍历并修改其中的值,会报错,如下代码就会报错:集合已修改;可能无法执行枚举操作。代码如下
public void ForeachDic() { Dictionary<String, Int32> dic = new Dictionary<String, Int32>(); dic.Add("1", 10); dic.Add("2", 20); dic.Add("3", 30); foreach (KeyValuePair<String, Int32> kvp in dic) { Console.WriteLine(String.Format("Key:{0}; Value:{1}", kvp.Key, kvp.Value)); dic[kvp.Key] = 100;//此操作会报错:集合已修改;可能无法执行枚举操作。 } }
解决方法就是我们可以另外创建一个数组来循环修改集合值,代码如下:
private void ForeachDic() { Dictionary<String, Int32> dic = new Dictionary<String, Int32>(); dic.Add("1", 10); dic.Add("2", 20); dic.Add("3", 30); String[] keyArr = dic.Keys.ToArray<String>(); for (int i = 0; i < keyArr.Length; i++) { dic[keyStr[i]] = dic[keyStr[i]] + 1; } }
相关文章
- C#桌面文案小工具 ,详细带解说图(带源码)
- C#操作XML方法集合
- C#泛型入门泛型类、泛型集合、泛型方法、泛型约束、泛型委托
- C#将枚举转换为List集合
- c# 字典树_c++树的遍历
- C#注册表操作实现代码
- C#用Lambda和委托实现模板方法
- C#中调用命令行cmd开启wifi热点的实例代码
- C#.net中的类型转换详细介绍
- 水晶易表调用C#的WebService,返回数据集合的应用分析
- c#获取CookieContainer的所有cookies函数代码
- C#常用字符串加密解密方法封装代码
- c#图片处理之图片裁剪成不规则图形
- C#之Expression表达式树实例
- C#特性-迭代器(上)及一些研究过程中的副产品
- C#查找素数实现方法