項目の値を変更しようとすると問題が発生します。読み取り専用フィールドしかないためです。KeyValuePairの値を変更するにはどうすればよいですか?
KeyValuePair<Tkey, Tvalue>
私のような別の選択肢試してみた:
Dictionary<Tkey, Tvalue>
をしかしそこに、私は同じ問題を抱えています。値フィールドを新しい値に設定する方法はありますか?
項目の値を変更しようとすると問題が発生します。読み取り専用フィールドしかないためです。KeyValuePairの値を変更するにはどうすればよいですか?
KeyValuePair<Tkey, Tvalue>
私のような別の選択肢試してみた:
Dictionary<Tkey, Tvalue>
をしかしそこに、私は同じ問題を抱えています。値フィールドを新しい値に設定する方法はありますか?
あなたはそれを変更することはできません。新しいもので置き換えることができます。
var newEntry = new KeyValuePair<Tkey, Tvalue>(oldEntry.Key, newValue);
や辞書のために:あなたはKeyValuePairを可変させるようにしたい場合は
dictionary[oldEntry.Key] = newValue;
ご協力ありがとうございます。辞書の部分はまさに私が必要なものです。 – Kimbo
KeyValuePair<TKey, TValue>
は不変です。変更されたキーまたは値を使用して新しいものを作成する必要があります。あなたが実際に次に行うことは、あなたのシナリオに依存し、正確に何をしたいかによって決まります。
を聞きます。
カスタムクラスを作成します。
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