.NET 2
标准:
foreach(KeyValuePair<int,int> entry in MyDic)
{
entry.Value += i; // does not work :(
i++;
}
建议?
答案 0 :(得分:4)
转而使用Keys
属性。当您使用枚举器时,对底层集合的任何修改都会在枚举器下次调用MoveNext
时使其失效。
您可以枚举Keys
或AllKeys
(这只是一个字符串数组)并修改它们指向的安全值。
此外,KeyValuePair<K, V>
的属性本身是只读的,因此,迭代器是否阻塞,在任何情况下都不能在不滥用反射的情况下修改这些值。