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を値の昇順・降順に柔軟にソートできます。データの集計やランキング表示など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。
-
Python | 2番目のリストを基準に最初のリストの値を並べ替える方法
Pythonでは、2番目のリストを基準として最初のリストの値を並べ替えたい場合、「sorted」メソッドと「zip」関数を組み合わせることで簡単に実現できます。リストは、整数・浮動小数点数・文字列など、さまざまなデータ型の値(異種の値)をひとつにまとめて格納できる便利なデータ構造です。sortedメソッド:リストの要素を昇順に並べ替えるために使用します。zip関数:複数のイテラブルを受け取り、対応する要素同士をタプルとして集約した結果を返します。以下に具体的な実装例を示します。サンプルコードdef list_sort(my_list_1, my_list_2): zi
-
Pythonで辞書の値をキーにして辞書のリストを並べ替える方法
sorted()関数を使った辞書リストのソートPythonには、イテラブル(反復可能オブジェクト)の要素を指定した順序で並べ替えるための組み込み関数 sorted() が用意されています。sorted(iterable[, key][, reverse])第2引数の key には関数を指定します。この関数の戻り値が、ソート時の比較キーとして使用されます。第3引数の reverse はデフォルトで False になっており、True を指定すると降順(大きい順)に並べ替えられます。lambda式でソートキーを指定する辞書のリストを並べ替える場合は、lambda式を使って「各辞書の特定のキーの値」