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;//此操作会报错:集合已修改;可能无法执行枚举操作。    
     }     
}    
C# DIctionary:集合已修改,可能无法执行枚举操作
    


            
 

 

       解决方法就是我们可以另外创建一个数组来循环修改集合值,代码如下:

C# DIctionary:集合已修改,可能无法执行枚举操作
    


            
 
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# DIctionary:集合已修改,可能无法执行枚举操作
    


            
 

     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;//此操作会报错:集合已修改;可能无法执行枚举操作。    
     }     
}    
C# DIctionary:集合已修改,可能无法执行枚举操作
    


            
 

 

       解决方法就是我们可以另外创建一个数组来循环修改集合值,代码如下:

C# DIctionary:集合已修改,可能无法执行枚举操作
    


            
 
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# DIctionary:集合已修改,可能无法执行枚举操作
    


            
 

相关文章:

  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-06
  • 2022-01-16
  • 2021-12-19
  • 2022-12-23
  • 2021-09-24
  • 2021-11-22
相关资源
相似解决方案