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

C#でDictionary(辞書)を値で並べ替える方法

C#でDictionary(辞書)を値で並べ替える方法

C#では、LINQのorderby句を使うことで、Dictionaryの要素をキーではなく値(Value)を基準に簡単に並べ替えることができます。ここでは、その基本的な手順をサンプルコード付きで解説します。

1. 辞書(Dictionary)を作成する

まず、キーに文字列、値に整数を持つDictionaryを宣言します。

var d = new Dictionary<string, int>(5);

2. キーと値を追加する

Addメソッドを使って、キーと値のペアを登録していきます。

// キーと値を追加
d.Add("car", 25);
d.Add("bus", 28);
d.Add("motorbike", 17);

3. orderby句で値を基準に並べ替える

LINQのクエリ構文であるorderby句を使い、Valueプロパティを基準にソートを行います。

var val = from ele in d
          orderby ele.Value ascending
          select ele;

上記の例ではascending(昇順)を指定しているため、値が小さい順に並べ替えられます。降順でソートしたい場合は、descendingに変更するだけで対応できます。

4. 並べ替えた結果を表示する

foreachループで各要素を取り出し、コンソールに出力します。

foreach (KeyValuePair<string, int> ele in val) {
    Console.WriteLine("{0} = {1}", ele.Key, ele.Value);
}

実行結果

motorbike = 17
car = 25
bus = 28

このように、LINQのorderby句を活用すれば、わずか数行のコードでDictionaryを値の昇順・降順に柔軟にソートできます。データの集計やランキング表示など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。

  1. Python | 2番目のリストを基準に最初のリストの値を並べ替える方法

    Pythonでは、2番目のリストを基準として最初のリストの値を並べ替えたい場合、「sorted」メソッドと「zip」関数を組み合わせることで簡単に実現できます。リストは、整数・浮動小数点数・文字列など、さまざまなデータ型の値(異種の値)をひとつにまとめて格納できる便利なデータ構造です。sortedメソッド:リストの要素を昇順に並べ替えるために使用します。zip関数:複数のイテラブルを受け取り、対応する要素同士をタプルとして集約した結果を返します。以下に具体的な実装例を示します。サンプルコードdef list_sort(my_list_1, my_list_2):    zi

  2. Pythonで辞書の値をキーにして辞書のリストを並べ替える方法

    sorted()関数を使った辞書リストのソートPythonには、イテラブル(反復可能オブジェクト)の要素を指定した順序で並べ替えるための組み込み関数 sorted() が用意されています。sorted(iterable[, key][, reverse])第2引数の key には関数を指定します。この関数の戻り値が、ソート時の比較キーとして使用されます。第3引数の reverse はデフォルトで False になっており、True を指定すると降順(大きい順)に並べ替えられます。lambda式でソートキーを指定する辞書のリストを並べ替える場合は、lambda式を使って「各辞書の特定のキーの値」