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

C#のKeyValuePairとは?キーと値のペアをListで管理する方法をわかりやすく解説

KeyValuePairクラスとは

C#のKeyValuePair<TKey, TValue>は、1つの「キー(Key)」と「値(Value)」をペアとして格納するための汎用データ構造です。Dictionary<TKey, TValue>の内部でも利用されており、関連性のある2つの値をまとめて管理したい場面でとても便利です。

本記事では、Listと組み合わせて、複数のキーと値のペアを1つのリストに格納する方法を紹介します。

KeyValuePairを作成して要素を追加する

まずは、KeyValuePair型の要素を持つListを作成し、要素を追加する基本のコードを見てみましょう。

var myList = new List<KeyValuePair<string, int>>();

// 要素の追加
myList.Add(new KeyValuePair<string, int>("Laptop", 20));
myList.Add(new KeyValuePair<string, int>("Desktop", 40));
myList.Add(new KeyValuePair<string, int>("Tablet", 60));

このコードでは、string型のキーとint型の値を組み合わせたKeyValuePairを3つ作成し、Listに追加しています。たとえば「Laptop」というキーには数量「20」が対応付けられています。

サンプルプログラム:キーと値の一覧を表示する

続いて、KeyValuePairを実際に動かし、登録したキーと値をコンソールに出力する完全なサンプルコードを確認しましょう。

完全なコード例

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var myList = new List<KeyValuePair<string, int>>();

        // 要素の追加
        myList.Add(new KeyValuePair<string, int>("Laptop", 20));
        myList.Add(new KeyValuePair<string, int>("Desktop", 40));
        myList.Add(new KeyValuePair<string, int>("Tablet", 60));

        foreach (var val in myList) {
            Console.WriteLine(val);
        }
    }
}

実行結果

[Laptop, 20]
[Desktop, 40]
[Tablet, 60]

foreachループで各要素を順番に取り出し、Console.WriteLineメソッドで出力すると、上記のように「[キー, 値]」の形式で表示されます。

Key・Valueプロパティで個別にアクセスする

foreachループ内では、KeyプロパティValueプロパティを使って、キーと値をそれぞれ独立して取得することも可能です。文字列補間と組み合わせると、より見やすい出力が実現できます。

foreach (var val in myList) {
    Console.WriteLine($"商品名: {val.Key}, 数量: {val.Value}");
}

まとめ

  • KeyValuePair<TKey, TValue>は、キーと値のペアを1つのオブジェクトとして扱える便利な構造体。
  • List<KeyValuePair<TKey, TValue>>と組み合わせれば、複数のペアを順序付きで管理できる。
  • Key・Valueプロパティを使えば、キーと値を個別に取り出すことも可能。

辞書のように高速な検索が必要なければ、KeyValuePairのListはシンプルで扱いやすい選択肢となります。ぜひ実際の開発で活用してみてください。

  1. 【Java】事前条件チェック:リストがnullまたは空でないことを確認する方法

    事前条件(Precondition)とは、メソッドが正しく動作するために、渡された引数が満たしているべき条件のことです。ここでは、パラメータとして渡されたリストがnullまたは空(要素数ゼロ)でないことを確認する例を見ていきましょう。 サンプルコード public void my_fun(List<Object> myList){    if (myList == null){       throw new IllegalArgumentException("List is null");   &n

  2. Pythonの関数における参照渡しと値渡しの仕組みを徹底解説

    Pythonでは、すべての引数(パラメータ)はオブジェクトへの参照として関数に渡されます。つまり、関数内で引数が参照しているオブジェクトを変更すると、その変更は呼び出し元の変数にも反映されます。この動作を理解することは、リストや辞書などのミュータブル(変更可能)なオブジェクトを扱ううえで非常に重要です。以下、具体的な例を見ていきましょう。例1:関数内でオブジェクトを変更する場合次の例では、関数に渡されたリストに対してappend()で要素を追加しています。これは元のオブジェクト自体を変更する操作です。#!/usr/bin/python3 # 関数の定義 def changeme(mylist