修改字典值

时间:2010-06-19 00:51:43

标签: .net collections .net-2.0

.NET 2

标准:

  foreach(KeyValuePair<int,int> entry in MyDic)
  {
      entry.Value += i; // does not work :(
      i++;
  }

建议?

1 个答案:

答案 0 :(得分:4)

转而使用Keys属性。当您使用枚举器时,对底层集合的任何修改都会在枚举器下次调用MoveNext时使其失效。

您可以枚举KeysAllKeys(这只是一个字符串数组)并修改它们指向的安全值。

此外,KeyValuePair<K, V>的属性本身是只读的,因此,迭代器是否阻塞,在任何情况下都不能在不滥用反射的情况下修改这些值。