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;     
          }     
    }   
  • 相关阅读:
    HDU4611+数学
    HDU4612+Tarjan缩点+BFS求树的直径
    HDU4602+推导公式
    HDU4607+BFS
    HDU1353+贪心
    HDU4545+LCS
    HDU4548+素数
    HDU4539+状态压缩DP
    HDU2110+母函数
    HDU1569+最大点权集
  • 原文地址:https://www.cnblogs.com/bincoding/p/8649850.html
Copyright © 2011-2022 走看看