Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 키를 기준으로 해시맵(Dictionary) 정렬하는 방법

C#에는 해시맵(HashMap)이라는 컬렉션이 없습니다. 해시맵은 자바(Java)에 존재하는 개념이며, C#에서 이와 동일한 역할을 하는 것은 키-값(key-value) 쌍을 저장하는 Dictionary입니다.

먼저 Dictionary를 생성하고 데이터를 추가해 보겠습니다.

Dictionary<string, int> d = new Dictionary<string, int>();

d.Add("soccer", 1);
d.Add("cricket", 2);
d.Add("tennis", 3);
d.Add("rugby", 4);

다음으로 ToList() 메서드로 모든 키를 리스트로 가져온 뒤, Sort() 메서드를 사용하여 사전순(오름차순)으로 정렬합니다.

// 키 가져오기
var val = d.Keys.ToList();

// 정렬
val.Sort();

아래는 키를 기준으로 Dictionary를 정렬하는 전체 예제 코드입니다.

예제

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
    static void Main() {

        Dictionary<string, int> d = new Dictionary<string, int>();
        d.Add("soccer", 1);
        d.Add("cricket", 2);
        d.Add("tennis", 3);
        d.Add("rugby", 4);

        // 키 가져오기
        var val = d.Keys.ToList();

        // 정렬
        val.Sort();

        // 정렬된 키 출력
        foreach (var key in val) {
            Console.WriteLine(key);
        }
    }
}

출력 결과

cricket
rugby
soccer
tennis

참고로, 항상 정렬된 상태를 유지하고 싶다면 일반 Dictionary 대신 SortedDictionary<string, int>를 사용하는 것도 좋은 대안입니다. 또한 LINQ의 OrderBy() 메서드를 활용하면 별도의 리스트 변환 없이 한 줄로 정렬된 키나 값을 조회할 수 있습니다.