Trier le dictionnaire par valeur en C#

Muhammad Maisam Abbas 16 février 2024
  1. Trier le dictionnaire par valeur avec la méthode List en C#
  2. Trier le dictionnaire par valeur avec la méthode Linq en C#
Trier le dictionnaire par valeur en C#

Ce didacticiel présentera des méthodes pour trier un dictionnaire par valeur en C#.

Trier le dictionnaire par valeur avec la méthode List en C#

Le C# structure de données du dictionnaire stocke les données sous la forme de paires clé: valeur. Malheureusement, il n’existe pas de méthode intégrée pour trier un dictionnaire par valeur en C#. Nous devons convertir le dictionnaire en une liste de tuples, puis trier la liste. L’exemple de code suivant nous montre comment trier un dictionnaire par valeur avec une liste en 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);
      }
    }
  }
}

Production:

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

Nous avons créé le dictionnaire myDict et l’avons trié par valeur entière. Nous avons d’abord converti le myDict en liste de tuples myList avec la fonction ToList() en C#. Nous avons ensuite trié la myList avec Linq et affiché les valeurs.

Trier le dictionnaire par valeur avec la méthode Linq en C#

Nous pouvons également trier directement un dictionnaire par valeur sans d’abord le convertir en liste. La requête intégrée Linq ou langage est utilisée pour effectuer des requêtes de type SQL en C#. Nous pouvons utiliser Linq pour trier un dictionnaire par valeur. L’exemple de code suivant nous montre comment trier un dictionnaire par valeur avec Linq en 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 sortedDict = from entry in myDict orderby entry.Value ascending select entry;
      foreach (var value in sortedDict) {
        Console.WriteLine(value);
      }
    }
  }
}

Production:

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

Nous avons créé le dictionnaire myDict et l’avons trié par valeur entière avec Linq en C#. Nous avons stocké le dictionnaire trié dans sortedDict et affiché les valeurs.

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

Article connexe - Csharp Dictionary