C#でマップ(Dictionary)を反復処理する方法を徹底解説
C#には、他の言語にあるような組み込みのMap型は用意されていません。そのため、キーと値のペアを扱うマップのようなデータ構造が必要な場合は、Dictionaryクラスを使用します。本記事では、Dictionaryを使ってマップを反復処理する基本的な方法を、サンプルコード付きでわかりやすく解説します。
1. Dictionaryを作成する
まず、Dictionaryインスタンスを作成し、Addメソッドで要素を追加します。
Dictionary<string, int> d = new Dictionary<string, int>();
d.Add("keyboard", 1);
d.Add("mouse", 2);
2. キーの一覧を取得する
次に、Keysプロパティからキーのコレクションを取得し、ToListメソッドでリストに変換します。
var val = d.Keys.ToList();
3. foreachループで反復処理する
取得したキーのリストに対してforeachループを使用することで、マップの内容を順番に処理できます。
foreach (var key in val) {
Console.WriteLine(key);
}
完全なサンプルコード
以下は、キーを取得してソートし、表示するまでの一連の流れをまとめた完全なコード例です。
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
static void Main() {
Dictionary<string, int> d = new Dictionary<string, int>();
d.Add("keyboard", 1);
d.Add("mouse", 2);
// キーを取得
var val = d.Keys.ToList();
// ソート
val.Sort();
// ソート済みのキーを表示
foreach (var key in val) {
Console.WriteLine(key);
}
}
}
実行結果
keyboard
mouse
補足:キーと値を同時に取得する方法
キーだけでなく値も一緒に処理したい場合は、KeyValuePairを利用すると便利です。
foreach (KeyValuePair<string, int> pair in d) {
Console.WriteLine($"{pair.Key}: {pair.Value}");
}
このように、DictionaryのKeysプロパティやKeyValuePairとforeachループを組み合わせることで、C#でもマップを柔軟かつ効率的に反復処理できます。用途に応じて使い分けてみてください。
-
Raspberry PiにVPNを導入する方法!OpenVPNの設定手順を徹底解説
VPN(仮想プライベートネットワーク)は、オンラインのプライバシーとセキュリティを守るうえで欠かせない存在です。普段使っているセキュリティ対策ツールと併せてVPNを利用していないなら、今すぐ導入を検討すべきといえます。Windows、Linux、macOSはもちろん、AndroidやiOS向けにも多彩なVPNサービスが提供されています。 では、Raspberry Pi(ラズベリーパイ)を使っている場合はどうでしょうか? Raspberry Pi用のOSの多くはLinuxベースですが、残念ながら多くのVPNプロバイダーはPi専用アプリを提供していません。Kodiの地域制限を回避したいなど、Ra
-
コントローラーをキーボードにマッピングする方法!SteamとAntiMicroで簡単設定
ゲームコントローラーをPCに接続すると、自動的に認識されます。Windows 10ではボタンの割り当てもあらかじめ設定されているため、改めてキーをマッピングする必要はありません。しかし、一部のゲームではこの初期設定がうまく機能しないことがあります。そんなときは、コントローラーをキーボードに割り当てられるマッパーツールを活用しましょう。この記事では、コントローラーをキーボードにマッピングする方法を詳しく解説します。 コントローラーをキーボードにマッピングする方法 コントローラーの各ボタンの機能は、ゲーム内の設定画面で確認できます。多くのゲーマーはキーボード操作でのプレイを好みます。長時間のコン