码迷,mamicode.com
首页 > 其他好文 > 详细

C#在foreach循环中修改字典等集合出错的处理

时间:2014-08-26 17:11:46      阅读:489      评论:0      收藏:0      [点我收藏+]

标签:io   for   ar   cti   amp   sp   new   on   c   

C#在foreach循环中修改字典等集合出错:System.InvalidOperationException: Collection was modified; enumeration operation may not execute.这是因为在foreach中不允许修改集合,可通过如下方式修改dictPublish的值,如:

Dictionary<string, string> _dict = new Dictionary<string, string>(dictPublish);
 if ((_dict != null) && (_dict.Count != 0))
{
      foreach (KeyValuePair<string, string> item in _dict)
      {
            dictPublish[item.Key] = "";
       }
}

如果用直接赋值的方式,如Dictionary<string, string> _dict = dictPublish;也是不行的,会报同样的错误。理由嘛,引用类型所致。

C#在foreach循环中修改字典等集合出错的处理

标签:io   for   ar   cti   amp   sp   new   on   c   

原文地址:http://www.cnblogs.com/junior/p/3937586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!