Classificar dicionário por valor em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Classifique o dicionário por valor com o método de lista em C#
  2. Classifique o dicionário por valor com o método Linq em C#
Classificar dicionário por valor em C#

Este tutorial apresentará métodos para classificar um dicionário por valor em C#.

Classifique o dicionário por valor com o método de lista em C#

O C# estrutura de dados do dicionário armazena dados na forma de pares chave: valor. Infelizmente, não existe um método interno para classificar um dicionário por valor em C#. Temos que converter o dicionário em uma lista de tuplas e então ordenar a lista. O exemplo de código a seguir nos mostra como classificar um dicionário por valor com uma lista em 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);
      }
    }
  }
}

Resultado:

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

Criamos o dicionário myDict e classificamos pelo valor inteiro. Primeiro convertemos myDict para a lista de tuplas myList com a função ToList() em C#. Em seguida, classificamos myList com Linq e exibimos os valores.

Classifique o dicionário por valor com o método Linq em C#

Também podemos classificar diretamente um dicionário por valor, sem primeiro convertê-lo em uma lista. O Linq ou consulta integrada de linguagem é usado para realizar consultas semelhantes a SQL em C#. Podemos usar o Linq para classificar um dicionário por valor. O exemplo de código a seguir nos mostra como classificar um dicionário por valor com Linq em 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);
      }
    }
  }
}

Resultado:

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

Criamos o dicionário myDict e o classificamos pelo valor inteiro com Linq em C#. Armazenamos o dicionário classificado dentro de sortedDict e exibimos os 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

Artigo relacionado - Csharp Dictionary