问题
this code throw exception while i am trying to update value ,first value only updated and then throw the exception "Collection was modified; enumeration operation may not execute." !!!!
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());
}
i need to update empty values in hashtables or any equivalent structure that has [key,value]??
回答1:
You need to make copy of hh.Keys, because you are trying to change Hashtable which is invalid operation while enumerating its keys in the foreach loop.
Try this code
foreach (string dd in new List<object>(hh.Keys.Cast<object>()))
{
hh[dd] = "some_value";
MessageBox.Show(dd);
}
来源:https://stackoverflow.com/questions/4726137/collection-was-modified-enumeration-operation-may-not-execute-when-update-valu