收集被修改;枚举操作可能无法执行。何时更新哈希表的值

时间:2011-01-18 15:59:10

标签: hashtable

此代码抛出异常,而我正在尝试更新值,第一个值仅更新,然后抛出异常“集合已被修改;枚举操作可能无法执行”。 !!!!

        Hashtable hh = new Hashtable();
        hh.Add("val 1",null);
        hh.Add("val 2", null);

        foreach (string dd in hh.Keys)
        {
            hh[dd] = "some_value";
           // MessageBox.Show(dd.Value.ToString());
        }

我需要更新哈希表中的空值或任何具有[key,value] ??

的等效结构

1 个答案:

答案 0 :(得分:1)

你需要制作hh.Keys的副本,因为你试图在foreach循环中枚举其键时尝试更改无效操作的Hashtable。

试试此代码

foreach (string dd in new List<object>(hh.Keys.Cast<object>()))
{
    hh[dd] = "some_value";
    MessageBox.Show(dd);
}