次のように、キー インデックスを使用して項目を Dictionary に割り当て/追加したいと考えました。
Dictionary<string, object> dict = new Dictionary<string, object>();
dict["key"] = dict["key"] ?? "object";
しかし、結果は次のようになります: 「指定されたキーは辞書に存在しませんでした。」
null合体を使用して、セッションに値を割り当てる方法と同じように、この辞書に値を割り当てる方法はありますか?
Session["Member"] = Session["Member"] ?? new Member();
ありがとう
編集:私は実際にディクショナリの子クラスからインデクサーをオーバーライドしようとしましたが、役に立ちませんでした。IDictionary インターフェイスの実装は、以下のコードの機能 (つまり、キーが見つからない場合は null を返す) だけが必要なので、多すぎるように思えます。したがって、次のような拡張機能を使用できると思います。
public static TValue [this Dictionary<TKey, TValue> thisDictionary, TKey key] {
get { return thisDictionary.ContainsKey(key) ? thisDictionary[key] : null; }
set { thisDictionary[key] = value; }
}
しかし、それは機能していないか、コンパイルさえしていません。
このインデクサー機能を再利用するための他の簡単な方法はありますか? どうもありがとう。