zoukankan      html  css  js  c++  java
  • C#在foreach循环中修改字典等集合出错的处理

    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;也是不行的,会报同样的错误。理由嘛,引用类型所致。

    WinForm中绑定到下拉框的数据源的成员设定顺序不同,则会触发SelectedIndex改变事件的次数也不一样。如下方式只触发一次:

    ddl.DataSource=null;
    ddl.ValueMember="Key";
    dd.DisplayMember="Value";
    dd.DataSource=new BindingSource(dict,null);
    如果数据源不为空的话,默认绑定到第一项,此时如果还有ddl.SelectedIndex=0则不引发索引改变事件。

  • 相关阅读:
    [NOIP2018 提高组] 保卫王国
    CF 939F. Cutlet
    [USACO15JAN]Moovie Mooving G
    [NOIP2017 提高组] 宝藏
    花园
    [[清华集训2012]串珠子]
    帮助——状压
    R语言产生月末日期
    R for循环示例
    Spark scala String Array转为String
  • 原文地址:https://www.cnblogs.com/junior/p/3937586.html
Copyright © 2011-2022 走看看