Ordina dizionario per valore in C#

Muhammad Maisam Abbas 12 ottobre 2023
  1. Ordina dizionario per valore con il metodo List in C#
  2. Ordina dizionario per valore con il metodo Linq in C#
Ordina dizionario per valore in C#

Questo tutorial introdurrà metodi per ordinare un dizionario in base al valore in C#.

Ordina dizionario per valore con il metodo List in C#

Il C# struttura dati del dizionario memorizza i dati sotto forma di coppie chiave: valore. Sfortunatamente, non esiste un metodo integrato per ordinare un dizionario in base al valore in C#. Dobbiamo convertire il dizionario in una lista di tuple e quindi ordinare la lista. L’esempio di codice seguente mostra come ordinare un dizionario in base al valore con una lista in 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);
      }
    }
  }
}

Produzione:

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

Abbiamo creato il dizionario myDict e lo abbiamo ordinato in base al valore intero. Per prima cosa abbiamo convertito myDict nella lista di tuple myList con la funzione ToList() in C#. Abbiamo quindi ordinato la myList con Linq e visualizzato i valori.

Ordina dizionario per valore con il metodo Linq in C#

Possiamo anche ordinare direttamente un dizionario per valore senza prima convertirlo in una lista. La query Linq o integrata nel linguaggio viene utilizzata per eseguire query di tipo SQL in C#. Possiamo usare Linq per ordinare un dizionario in base al valore. L’esempio di codice seguente mostra come ordinare un dizionario in base al valore con Linq in 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);
      }
    }
  }
}

Produzione:

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

Abbiamo creato il dizionario myDict e lo abbiamo ordinato in base al valore intero con Linq in C#. Abbiamo memorizzato il dizionario ordinato all’interno di SortDict e visualizzato i valori.

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

Articolo correlato - Csharp Dictionary