C#에서 값으로 사전 정렬

Muhammad Maisam Abbas 2024년2월16일
  1. C#의 List 메서드를 사용하여 값으로 사전 정렬
  2. C#의 Linq 메서드를 사용하여 값으로 사전 정렬
C#에서 값으로 사전 정렬

이 자습서에서는 C#에서 값별로 사전을 정렬하는 방법을 소개합니다.

C#의 List 메서드를 사용하여 값으로 사전 정렬

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사전을 만들고 정수 값으로 정렬했습니다. 먼저myDict를 C#의ToList()함수를 사용하여myList튜플 목록으로 변환했습니다. 그런 다음 Linq로myList를 정렬하고 값을 표시했습니다.

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