C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDictionaryに格納された値を更新する方法

C#におけるDictionaryは、キーと値のペアを格納するためのジェネリックコレクションです。Dictionaryでは、キーにnullを指定することはできませんが、値にはnullを設定することが可能です。また、キーは必ず一意である必要があり、重複したキーを使用しようとすると、コンパイラは例外をスローします。

Dictionaryの値を更新する基本構文

前述のとおり、Dictionary内の値はキーを使って更新できます。これは、すべての値に対してキーが一意に対応しているためです。

myDictionary[myKey] = myNewValue;

サンプルコード

ここでは、学生のIDと名前を持つDictionaryを例に考えてみましょう。IDが2の学生の名前を「Mrk」から「Mark」に変更したい場合、以下のように記述します。

using System;
using System.Collections.Generic;
namespace DemoApplication{
    class Program{
        static void Main(string[] args){
            Dictionary<int, string> students = new Dictionary<int, string>{
                { 1, "John" },
                { 2, "Mrk" },
                { 3, "Bill" }
            };
            Console.WriteLine($"Name of student having id 2: {students[2]}");
            students[2] = "Mark";
            Console.WriteLine($"Updated Name of student having id 2: {students[2]}");
            Console.ReadLine();
        }
    }
}

コードの解説

  • まず、Dictionary<int, string>型の変数studentsを作成し、初期化子で3件のデータを登録します。
  • students[2]とインデクサーでアクセスすることで、キー「2」に対応する値を取得できます。
  • students[2] = "Mark";という代入文により、既存の値「Mrk」が新しい値「Mark」で上書きされます。

実行結果

上記のコードを実行すると、出力は次のようになります。

Name of student having id 2: Mrk
Updated Name of student having id 2: Mark

補足:存在しないキーへの注意点

なお、この構文で存在しないキーを指定した場合は例外が発生せず、代わりに新しいエントリとして追加される点に注意してください。キーが存在するかどうかを事前に確認したい場合は、ContainsKey()メソッドやTryGetValue()メソッドを活用すると安全です。

  1. Windows 10 で特定の更新プログラムの自動インストールを防止する方法

    ご存じのとおり、Windows 10 は利用可能な Windows 更新プログラムやドライバーを自動的にダウンロードしてインストールします。しかし場合によっては、特定の更新プログラムが正常にインストールされないことがあります。そのようなケースでは、Microsoft がバグを修正したり新しいバージョンをリリースしたりするまで、該当する更新プログラムのインストールを一時的にブロックしておくのが賢明です。 本記事では、Windows 10 における特定の更新プログラムの自動インストールをブロックする詳細な手順を解説します。 関連記事 Windows 10 の更新プログラムを完全に無効化する方法

  2. Windows 10でWindows Updateの帯域幅を制限する2つの方法【設定・グループポリシー】

    Windows 10には、必要なアップデートやダウンロードに応じて帯域幅を制限し、最適化する仕組みが標準で備わっています。Windows Updateの帯域幅を制限することで、データ通信量の上限を気にせずに済み、アップデートだけで回線を占有される心配もありません。アップデートが進行中でも、その範囲内であれば、Webブラウジング、ファイルのダウンロード、動画視聴、オンラインゲームなどを快適に続けられます。 ただし、この設定は自分のPCに対してのみ適用されるものであり、同じローカルネットワーク上にある他のPCの通信状況までは管理できません。そのため、アップデート中は他のデバイスで通信速度が低下する