【C#】Dictionaryに一致するkeyがあれば内容を更新、無ければkey追加、を1行で書く

C#

DictionaryのKey追加の記述は、C#のバージョン(.Net Framework のバージョン)により異なります。現在稼働中のPCで使うプログラムであれば、1行で書く方法で良いと思います。

C# 6.0以降(.NET Framework 4.6以降)

以下の1行の記述でOK。

myDictionary[key] = value;

この行は、keyがディクショナリに既に存在する場合はその値を更新し、存在しない場合は新しい要素を追加します。この書き方を使えば、条件分岐や複数行のコードを書くことなく、要素の存在に応じて適切に処理できます。

C#覚えたころは、こんな簡単に書けませんでした。便利になりましたね。

なお昔は下記のようにif文が必要でした。

C# 6.0より古い(.NET Framework 4.6より古い)

C#の古いバージョンでは下記のように書く必要があります。既に存在しているキーをAddメソッドで追加しようとすると例外が発生したり面倒でした。もうこの時代には戻りたくない!

if (myDictionary.ContainsKey(key))
{
    myDictionary[key] = value;
}
else
{
    myDictionary.Add(key, value);
}

Windowsのバージョンと.Net Frameworkの関係

Windows 10には標準で.NET Frameworkがインストールされています。ただし、具体的な.NET FrameworkのバージョンはWindows 10のリリースバージョンによって異なります。

以下は、Windows 10のリリースとそれに対応する.NET Frameworkのバージョンです:

  • Windows 10 v1507 (初期のバージョン): .NET Framework 4.6
  • Windows 10 v1511 (November Update): .NET Framework 4.6.1
  • Windows 10 v1607 (Anniversary Update): .NET Framework 4.6.2
  • Windows 10 v1703 (Creators Update): .NET Framework 4.7

まとめ

本記事では、Dictionaryに一致するkeyがあれば内容を更新、無ければkey追加を簡単に書く方法を紹介しました。

タイトルとURLをコピーしました