Ordenar diccionario por valor en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Ordenar diccionario por valor con el método de lista en C#
  2. Ordenar diccionario por valor con el método Linq en C#
Ordenar diccionario por valor en C#

Este tutorial presentará métodos para ordenar un diccionario por valor en C#.

Ordenar diccionario por valor con el método de lista en C#

El C# estructura de datos del diccionario almacena datos en forma de pares clave: valor. Desafortunadamente, no existe un método integrado para ordenar un diccionario por valor en C#. Tenemos que convertir el diccionario a una lista de tuplas y luego ordenar la lista. El siguiente ejemplo de código nos muestra cómo ordenar un diccionario por valor con una lista 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);
      }
    }
  }
}

Producción :

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

Creamos el diccionario myDict y lo ordenamos por valor entero. Primero convertimos el myDict a la lista de tuplas myList con la función ToList() en C#. Luego ordenamos la myList con Linq y mostramos los valores.

Ordenar diccionario por valor con el método Linq en C#

También podemos ordenar directamente un diccionario por valor sin convertirlo primero en una lista. La consulta Linq o lenguaje integrado se utiliza para realizar consultas similares a SQL en C#. Podemos usar Linq para ordenar un diccionario por valor. El siguiente ejemplo de código nos muestra cómo ordenar un diccionario por valor con 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);
      }
    }
  }
}

Producción :

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

Creamos el diccionario myDict y lo ordenamos por el valor entero con Linq en C#. Guardamos el diccionario ordenado dentro de sortedDict y mostramos los valores.

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

Artículo relacionado - Csharp Dictionary