C# で辞書をリストコレクションに変換する

Syed Hassan Sabeeh Kazmi 2023年10月12日
C# で辞書をリストコレクションに変換する

C# では、System.Linq 拡張機能の一部として ToList() メソッドを使用して、辞書をリストに変換できます。辞書の戻りタイプが KeyCollection であるため、辞書を直接 List<string> に変換することはできません。

リストは ArrayList に似ていますが、唯一の違いは、リストが汎用であり、固有のプロパティを持っていることです。

このチュートリアルでは、C# で辞書をリストコレクションに変換する方法を説明します。

C#ToList() メソッドを使用して辞書をリストコレクションに変換する

C# のディクショナリは、2つの引数を受け入れます。最初の引数はキーで、2 番目の引数は値です。ディクショナリは、さまざまなデータとその値をリストに追加するときに役立ちます。

ディクショナリ値をリストコレクションに変換するために、組み込みの ToList() メソッドによってこの汎用リストを変換できます。リストと辞書はどちらもデータコレクションを格納しており、類似しています。どちらも .NET フレームワークのランダムアクセスデータ構造です。

辞書は、物事を検索するための効率的なアルゴリズムであるハッシュテーブルに基づいています。一方、リストは、最初から結果まで毎回結果が見つかるまで、要素ごとに移動します。

System.Collections.Generic および System.Linq 名前空間を使用して、C# で辞書をリストコレクションに変換するのは簡単です。辞書コレクションで ToList() を呼び出し、KeyValuePair インスタンスのリストを生成します。

// add `System.Collections.Generic` and `System.Linq` namespaces
using System;
using System.Collections.Generic;
using System.Linq;

class ConDtoLCol {
  static void Main() {
    // create a Dictionary
    Dictionary<string, int> dict = new Dictionary<string, int>();
    dict["cat"] = 1;
    dict["dog"] = 4;
    dict["mouse"] = 2;
    dict["rabbit"] = -1;

    // call ToList to convert the `dict` Dictionary to List
    List<KeyValuePair<string, int>> list = dict.ToList();

    // loop over List to show successful conversion
    foreach (KeyValuePair<string, int> pair in list) {
      Console.WriteLine(pair.Key);
      Console.WriteLine("   {0}", pair.Value);
    }
  }
}

出力:

cat
   1
dog
   4
mouse
   2
rabbit
   -1

辞書のキーを C# のリストコレクションに変換する場合は、次を使用できます。

List<string> listNumber = dicNumber.Keys.ToList();

さらに、辞書の値を C# のリストコレクションに変換するには、次を使用できます。

List<string> listNumber = dicNumber.Values.ToList();

.NET フレームワークディクショナリは、キーと値のコレクションを表します。ディクショナリキーの主な目的は、ユーザーがディクショナリ値の汎用リスト(コレクション)を取得できるようにすることです。

さらに、values プロパティを使用して、ディクショナリ値の一般的なリストを取得できます。この記事では、辞書のキーと値を C# のリストに変換する最も効率的な方法を学びました。

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub

関連記事 - Csharp Dictionary

関連記事 - Csharp List