如何修改一个KeyValuePair值?

当我尝试修改项目的值时,出现了一个问题,因为它只有一个只读字段。

KeyValuePair<Tkey, Tvalue> 

我已经尝试了不同的select,如:

 Dictionary<Tkey, Tvalue> 

但是我也有同样的问题。 有没有办法将值字段设置为新值?

你不能修改它,你可以用一个新的replace它。

 var newEntry = new KeyValuePair<Tkey, Tvalue>(oldEntry.Key, newValue); 

或字典:

 dictionary[oldEntry.Key] = newValue; 

KeyValuePair<TKey, TValue>是不可变的。 您需要使用修改过的键或值创build一个新的。 你下一步做什么取决于你的情况,你到底想做什么

听到,如果你想使KeyValuePair使可变。

做一个自定义的类。

 public class KeyVal<Key, Val> { public Key Id { get; set; } public Val Text { get; set; } public KeyVal() { } public KeyVal(Key key, Val val) { this.Id = key; this.Text = val; } } 

所以我们可以在KeyValuePair中的任何地方使用它。