我嘗試修改項目的值時出現問題,因爲它只有一個只讀字段。如何修改KeyValuePair值?
KeyValuePair<Tkey, Tvalue>
我已經試過像不同的選擇:
Dictionary<Tkey, Tvalue>
但我有同樣的問題。有沒有辦法將值字段設置爲新值?
我嘗試修改項目的值時出現問題,因爲它只有一個只讀字段。如何修改KeyValuePair值?
KeyValuePair<Tkey, Tvalue>
我已經試過像不同的選擇:
Dictionary<Tkey, Tvalue>
但我有同樣的問題。有沒有辦法將值字段設置爲新值?
你不能修改它,你可以用一個新的替換它。
var newEntry = new KeyValuePair<Tkey, Tvalue>(oldEntry.Key, newValue);
或詞典:
dictionary[oldEntry.Key] = newValue;
感謝您的幫助。字典的部分正是我需要的。 – Kimbo
KeyValuePair<TKey, TValue>
是不可變的。您需要使用修改過的鍵或值創建一個新的。你實際上下一步做什麼取決於你的場景,以及你想要做什麼...
聽到的話,你想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。
您是否正在嘗試更新某個特定值或該詞典中的所有/大部分值? – J0HN
我嘗試更新特定值。 – Kimbo