C# で辞書を値で並べ替える

Muhammad Maisam Abbas 2024年2月16日
  1. C# のリストメソッドを使用して辞書を値で並べ替える
  2. C# の Linq メソッドを使用して辞書を値で並べ替える
C# で辞書を値で並べ替える

このチュートリアルでは、C# で辞書を値で並べ替える方法を紹介します。

C# のリストメソッドを使用して辞書を値で並べ替える

C# 辞書データ構造は、key:value ペアの形式でデータを格納します。残念ながら、C# では辞書を値で並べ替える組み込みのメソッドはありません。辞書をタプルのリストに変換してから、リストをソートする必要があります。次のコード例は、C# のリストを使用して辞書を値で並べ替える方法を示しています。

using System;
using System.Collections.Generic;
using System.Linq;

namespace sort_dictionary_by_value {
  class Program {
    static void Main(string[] args) {
      Dictionary<string, int> myDict = new Dictionary<string, int>();
      myDict.Add("one", 1);
      myDict.Add("four", 4);
      myDict.Add("two", 2);
      myDict.Add("three", 3);
      var myList = myDict.ToList();

      myList.Sort((pair1, pair2) => pair1.Value.CompareTo(pair2.Value));
      foreach (var value in myList) {
        Console.WriteLine(value);
      }
    }
  }
}

出力:

[one, 1]
[two, 2]
[three, 3]
[four, 4]

辞書 myDict を作成し、整数値でソートしました。最初に、C# の ToList() 関数を使用して、myDict をタプルのリスト myList に変換しました。次に、myList を Linq で並べ替え、値を表示しました。

C# の Linq メソッドを使用して辞書を値で並べ替える

最初にリストに変換せずに、辞書を値で直接並べ替えることもできます。Linq または統合言語クエリは、C# で SQL のようなクエリを実行するために使用されます。Linq を使用して、辞書を値で並べ替えることができます。次のコード例は、C# で Linq を使用して辞書を値で並べ替える方法を示しています。

using System;
using System.Collections.Generic;
using System.Linq;

namespace sort_dictionary_by_value {
  class Program {
    static void Main(string[] args) {
      Dictionary<string, int> myDict = new Dictionary<string, int>();
      myDict.Add("one", 1);
      myDict.Add("four", 4);
      myDict.Add("two", 2);
      myDict.Add("three", 3);

      var sortedDict = from entry in myDict orderby entry.Value ascending select entry;
      foreach (var value in sortedDict) {
        Console.WriteLine(value);
      }
    }
  }
}

出力:

[one, 1]
[two, 2]
[three, 3]
[four, 4]

辞書 myDict を作成し、C# の Linq を使用して整数値で並べ替えました。ソートされた辞書を sortedDict 内に保存し、値を表示しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp Dictionary