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

C#のDictionary.Item[]プロパティとは?値の取得・更新方法を実例付きで解説

C#におけるDictionary.Item[]プロパティは、Dictionary(辞書)コレクション内の指定したキーに関連付けられた値を取得または設定するためのインデクサです。角括弧 [] を使って dict["キー"] のようにアクセスできるため、配列のような直感的な記述で辞書の要素を操作できます。

この記事では、Item[]プロパティの基本構文から、実際に動作するサンプルコードとその出力結果までをわかりやすく解説します。

構文

Dictionary.Item[]プロパティの構文は以下の通りです。

public TValue this[TKey key] { get; set; }

Item[]プロパティのポイント

  • get: 指定したキーに関連付けられた値を取得します。
  • set: 指定したキーに値を設定します。既存のキーであれば値が更新され、存在しないキーであれば新しい要素として追加されます。
  • get時に指定したキーが存在しない場合は、KeyNotFoundException がスローされる点に注意が必要です。

例1:値の取得・更新・削除を試す

まずは、Item[]プロパティを使って値を取得し、更新し、さらにClearメソッドで全要素を削除する一連の流れを見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(){
      Dictionary<string, string> dict =
      new Dictionary<string, string>();
      dict.Add("One", "Chris");
      dict.Add("Two", "Steve");
      dict.Add("Three", "Messi");
      dict.Add("Four", "Ryan");
      dict.Add("Five", "Nathan");

      Console.WriteLine("要素数 = " + dict.Count);
      Console.WriteLine("\nキー/値のペア...");
      foreach(KeyValuePair<string, string> res in dict){
         Console.WriteLine("Key = {0}, Value = {1}", res.Key, res.Value);
      }

      // Item[]プロパティで値を取得
      Console.WriteLine("キー「Three」に対応する値 = " + dict["Three"]);

      // Item[]プロパティで値を更新
      dict["Three"] = "Ronaldo";
      Console.Write("キー「Three」に関連付けられた値を更新...");
      Console.WriteLine(dict["Three"]);

      // 値の存在確認
      if (dict.ContainsValue("Angelina"))
         Console.WriteLine("\n\n値が見つかりました!");
      else
         Console.WriteLine("\n\n値はディクショナリ内に存在しません!");

      // 全要素を削除
      dict.Clear();
      Console.WriteLine("キー/値のペアをクリアしました...");
      foreach(KeyValuePair<string, string> res in dict){
         Console.WriteLine("Key = {0}, Value = {1}", res.Key, res.Value);
      }
      Console.WriteLine("現在の要素数 = " + dict.Count);
   }
}

出力結果

上記のコードを実行すると、次の出力が得られます。

要素数 = 5
キー/値のペア...
Key = One, Value = Chris
Key = Two, Value = Steve
Key = Three, Value = Messi
Key = Four, Value = Ryan
Key = Five, Value = Nathan
キー「Three」に対応する値 = Messi
キー「Three」に関連付けられた値を更新...Ronaldo
値はディクショナリ内に存在しません!
キー/値のペアをクリアしました...
現在の要素数 = 0

例2:シンプルな値の取得と更新

続いて、もう少しシンプルな例でItem[]プロパティの動作を確認してみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(){
      Dictionary<string, string> dict =
      new Dictionary<string, string>();
      dict.Add("One", "Chris");
      dict.Add("Two", "Steve");
      dict.Add("Three", "Messi");
      dict.Add("Four", "Ryan");
      dict.Add("Five", "Nathan");

      Console.WriteLine("要素数 = " + dict.Count);
      Console.WriteLine("\nキー/値のペア...");
      foreach(KeyValuePair<string, string> res in dict){
         Console.WriteLine("Key = {0}, Value = {1}", res.Key, res.Value);
      }

      Console.WriteLine("キー「Three」に対応する値 = " + dict["Three"]);

      dict["Three"] = "Katie";
      Console.Write("キー「Three」に関連付けられた値を更新...");
      Console.WriteLine(dict["Three"]);
   }
}

出力結果

要素数 = 5
キー/値のペア...
Key = One, Value = Chris
Key = Two, Value = Steve
Key = Three, Value = Messi
Key = Four, Value = Ryan
Key = Five, Value = Nathan
キー「Three」に対応する値 = Messi
キー「Three」に関連付けられた値を更新...Katie

まとめ

Dictionary.Item[]プロパティを使えば、キーを指定して辞書の値を簡単に取得・更新できます。既存のキーへの代入は値の上書きになり、未登録のキーへの代入は新規追加として扱われる点を覚えておくと便利です。一方で、存在しないキーを読み取ろうとすると例外が発生するため、事前にContainsKeyメソッドやTryGetValueメソッドでキーの存在を確認するのが安全なプログラミングの基本となります。

  1. HTML DOMのnodeValueプロパティとは?ノード値の取得・設定方法を実例付きで解説

    HTML DOMのnodeValueプロパティは、ノードの値に対応する文字列を取得または設定するために使用されます。DOM操作において、テキストノードや属性ノードの中身を扱う際に非常に便利な基本プロパティです。構文(値の取得)ノードの値を文字列として取得する場合は、以下のように記述します。Node.nodeValue取得される戻り値は、ノードの種類によって以下のように異なります。ドキュメントノードおよび要素ノード:「null」が返される属性ノード:その属性の「value」の値が返されるテキストノードおよびコメントノード:それぞれの内容(テキストやコメント文)が返される構文(値の設定)nodeV

  2. HTML DOM valueプロパティとは?属性値の取得方法とサンプルコードを解説

    HTML DOMのvalueプロパティは、要素が持つ属性(attribute)の値に対応する文字列を返すプロパティです。JavaScriptからHTML要素の属性値を読み取りたい場合に活用できます。基本構文valueプロパティの基本的な書き方は以下の通りです。elementAttribute.value対象となる属性オブジェクトに対して.valueを指定することで、その属性が保持している値を文字列として取得できます。実装例ここでは、画像タグ(<img>)のsrc属性の値をボタンクリック時に取得して画面に表示するサンプルを紹介します。<!DOCTYPE html> <