zoukankan      html  css  js  c++  java
  • C# DIctionary:集合已修改,可能无法执行枚举操作

         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;     
          }     
    }   
  • 相关阅读:
    ubuntu18.04安装g2o
    akka学习
    spark学习记录-2
    spark学习记录-1
    c++ string需要注意的地方
    clion server激活地址
    【转】c++面试基础
    c++反射概念-简单介绍
    死锁的理解
    c++ 反射类型
  • 原文地址:https://www.cnblogs.com/bincoding/p/8649850.html
Copyright © 2011-2022 走看看