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はシンプルで扱いやすい選択肢となります。ぜひ実際の開発で活用してみてください。
-
【Java】事前条件チェック:リストがnullまたは空でないことを確認する方法
事前条件(Precondition)とは、メソッドが正しく動作するために、渡された引数が満たしているべき条件のことです。ここでは、パラメータとして渡されたリストがnullまたは空(要素数ゼロ)でないことを確認する例を見ていきましょう。 サンプルコード public void my_fun(List<Object> myList){ if (myList == null){ throw new IllegalArgumentException("List is null"); &n
-
Pythonの関数における参照渡しと値渡しの仕組みを徹底解説
Pythonでは、すべての引数(パラメータ)はオブジェクトへの参照として関数に渡されます。つまり、関数内で引数が参照しているオブジェクトを変更すると、その変更は呼び出し元の変数にも反映されます。この動作を理解することは、リストや辞書などのミュータブル(変更可能)なオブジェクトを扱ううえで非常に重要です。以下、具体的な例を見ていきましょう。例1:関数内でオブジェクトを変更する場合次の例では、関数に渡されたリストに対してappend()で要素を追加しています。これは元のオブジェクト自体を変更する操作です。#!/usr/bin/python3 # 関数の定義 def changeme(mylist