C#のToDictionaryメソッドの使い方を徹底解説!コレクションをDictionaryに変換する方法
C#のToDictionaryメソッドは、System.Linq名前空間に用意されている拡張メソッドの一つです。このメソッドを使うことで、配列やリストなどのコレクションを簡単にDictionary(辞書)へ変換することができます。
ToDictionaryメソッドとは
ToDictionaryメソッドは、IEnumerable<T>型のコレクションに対して呼び出すことができ、各要素からキーと値を生成するラムダ式を指定してDictionaryを作成します。
- 第1引数(keySelector):各要素からキーを抽出するための関数
- 第2引数(elementSelector):各要素から値を抽出するための関数
なお、同じキーが重複した場合には例外がスローされるため、キーの重複がないことに注意が必要です。
基本的な使い方
まず、変換元となる文字列の配列を作成します。
string[] str = new string[] {"Car", "Bus", "Bicycle"};次に、ToDictionaryメソッドを使って、このコレクションをDictionaryに変換します。ここでは、配列の各要素をキーとし、値としてtrueを設定しています。
str.ToDictionary(item => item, item => true);
サンプルコード全体
以下に、実際に動作する完全なサンプルコードを示します。
using System;
using System.Collections.Generic;
using System.Linq;
class Demo {
static void Main() {
string[] str = new string[] {"Car", "Bus", "Bicycle"};
// ToDictionaryでキーと値を指定して変換
var d = str.ToDictionary(item => item, item => true);
foreach (var ele in d) {
Console.WriteLine("{0}, {1}", ele.Key, ele.Value);
}
}
}実行結果
Car, True Bus, True Bicycle, True
まとめ
ToDictionaryメソッドを活用すれば、配列やリストといったコレクションを数行のコードでDictionaryに変換できます。キーと値の対応関係を持つデータを扱いたい場合に非常に便利なメソッドなので、ぜひ活用してみてください。
-
HTML DOMのitem()メソッドとは?使い方とサンプルコードをわかりやすく解説
HTML DOMのitem()メソッドは、ノードリスト(NodeList)オブジェクトから指定した位置のノードを取得して返すメソッドです。ポイント: item()メソッドは、ノードリストオブジェクトに対してインデックス値を指定し、該当するノードを取り出すために使用します。これは、ノードリストに「[index]」という形でインデックス値を渡してノードを取得するのと全く同じ動作になります。構文item()メソッドの基本的な構文は以下の通りです。引数には0から始まるインデックス番号を指定します。nodeListObject.item(index)サンプルコードここでは、item()メソッドを使った具
-
RubyのArray#zipメソッド徹底解説!2つの配列をスマートに結合する方法
2つの配列を要素ごとに比較して、その違いを見つけたいと思ったことはありませんか? あるいは、各インデックスごとに最大の数値を求めたい、キーのリストと値のリストを組み合わせてハッシュを作りたい――そんな場面にも出会うことがあるでしょう。 …これを「面倒な方法」で実装すると、次のようなコードになります。 例:冗長な書き方 a = [1,2,3,4,5] b = [1,2,3,6,8] c = a.map.with_index { |_, idx| [a[idx], b[idx]] } # [[1, 1], [2, 2], [3, 3], [4, 6], [5, 8]] 確かに動作はしますが