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

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に変換できます。キーと値の対応関係を持つデータを扱いたい場合に非常に便利なメソッドなので、ぜひ活用してみてください。

  1. HTML DOMのitem()メソッドとは?使い方とサンプルコードをわかりやすく解説

    HTML DOMのitem()メソッドは、ノードリスト(NodeList)オブジェクトから指定した位置のノードを取得して返すメソッドです。ポイント: item()メソッドは、ノードリストオブジェクトに対してインデックス値を指定し、該当するノードを取り出すために使用します。これは、ノードリストに「[index]」という形でインデックス値を渡してノードを取得するのと全く同じ動作になります。構文item()メソッドの基本的な構文は以下の通りです。引数には0から始まるインデックス番号を指定します。nodeListObject.item(index)サンプルコードここでは、item()メソッドを使った具

  2. 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]] 確かに動作はしますが