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

C#のDictionary.Valuesプロパティとは?使い方と実行例をわかりやすく解説


Dictionary.Valuesプロパティとは?

C#における Dictionary<TKey, TValue> クラスの Values プロパティは、ディクショナリに格納されているすべての値(Value)を一括して取得するために使用されます。戻り値は Dictionary<TKey, TValue>.ValueCollection 型のコレクションで、これを foreach 文などでループ処理することにより、各値を簡単に取り出すことができます。

対となる Keys プロパティがキーの一覧を返すのに対し、Values プロパティは値だけのコレクションを返すという点が特徴です。また、このコレクションはディクショナリのコピーではなく「ビュー」として動作するため、元のディクショナリに要素を追加・削除すると、その変更がコレクション側にも反映されます。

構文

Values プロパティの構文は以下の通りです。

public System.Collections.Generic.Dictionary<TKey, TValue>.ValueCollection Values { get; }

get アクセサのみが定義された読み取り専用のプロパティであるため、外部から値を代入することはできません。

使用例1:string型のキーを持つディクショナリ

まず、キーと値がどちらも文字列型(string)のディクショナリで、Values プロパティを使ってすべての値を取得してみましょう。

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        Dictionary<string, string> dict = new Dictionary<string, string>();
        dict.Add("One", "Kagido");
        dict.Add("Two", "Ngidi");
        dict.Add("Three", "Devillers");
        dict.Add("Four", "Smith");
        dict.Add("Five", "Warner");

        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.Write("\nすべての値...\n");
        Dictionary<string, string>.ValueCollection allValues = dict.Values;
        foreach(string str in allValues) {
            Console.WriteLine("Value = {0}", str);
        }
    }
}

出力結果

要素数 = 5
キーと値のペア...
Key = One, Value = Kagido
Key = Two, Value = Ngidi
Key = Three, Value = Devillers
Key = Four, Value = Smith
Key = Five, Value = Warner
すべての値...
Value = Kagido
Value = Ngidi
Value = Devillers
Value = Smith
Value = Warner

dict.Values で取得した ValueCollection を foreach で反復処理することで、ディクショナリに登録された5つの値がすべて出力されていることが確認できます。

使用例2:int型のキーを持つディクショナリ

続いて、キーが int 型の場合の例です。キーの型が変わっても、Values プロパティの基本的な使い方はまったく同じです。

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        Dictionary<int, string> dict = new Dictionary<int, string>();
        dict.Add(1, "Kagido");
        dict.Add(2, "Ngidi");
        dict.Add(3, "Devillers");

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

        Console.Write("\nすべての値...\n");
        Dictionary<int, string>.ValueCollection allValues = dict.Values;
        foreach(string str in allValues) {
            Console.WriteLine("Value = {0}", str);
        }
    }
}

出力結果

要素数 = 3
キーと値のペア...
Key = 1, Value = Kagido
Key = 2, Value = Ngidi
Key = 3, Value = Devillers
すべての値...
Value = Kagido
Value = Ngidi
Value = Devillers

まとめ:押さえておきたいポイント

  • Values プロパティを使うと、ディクショナリ内のすべての値を ValueCollection として一度に取得できます。
  • foreach 文と組み合わせることで、キーを意識せず値だけを順番に処理できます。
  • 戻り値のコレクションはコピーではなく、元のディクショナリと連動するビューです。
  • 列挙される値の順序は仕様上保証されていないため、順序が重要な場合はソートなどの別途処理が必要です。
  1. HTML WindowのpageYOffsetプロパティとは?使い方とコード例をわかりやすく解説

    pageYOffsetプロパティとはHTML WindowオブジェクトのpageYOffsetプロパティは、現在のドキュメントが垂直方向(上端)からどれだけスクロールされているかを、ピクセル単位の数値として返します。ページのスクロール位置を取得したい場合に便利なプロパティで、読み取り専用のため値の設定はできません。水平方向のスクロール量を取得したい場合は、同様にpageXOffsetプロパティを使用します。構文pageYOffsetプロパティの基本的な構文は以下のとおりです。window.pageYOffsetサンプルコードここでは、「Scroll」ボタンでページを10pxずつスクロールし、「

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

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