C#에서 Dictionary(딕셔너리)에 저장된 모든 키(key)를 별도의 목록으로 가져오고 싶다면 List<T> 컬렉션을 활용하면 됩니다. 이 글에서는 딕셔너리의 키만 추출해 화면에 출력하는 전체 과정을 예제 코드와 함께 단계별로 살펴보겠습니다.
1단계: 딕셔너리 요소 정의
먼저 키와 값 쌍으로 이루어진 딕셔너리를 생성하고 요소를 추가합니다.
Dictionary<int, string> d = new Dictionary<int, string>(); // 딕셔너리 요소 추가 d.Add(1, "One"); d.Add(2, "Two"); d.Add(3, "Three"); d.Add(4, "Four"); d.Add(5, "Five"); d.Add(6, "Six"); d.Add(7, "Seven"); d.Add(8, "Eight");
2단계: List 컬렉션으로 키 가져오기
딕셔너리의 Keys 속성은 모든 키를 담고 있는 컬렉션입니다. 이를 List<int> 생성자에 그대로 전달하면 키 목록이 완성됩니다.
List<int> keys = new List<int>(d.Keys);
3단계: foreach 루프로 키 출력하기
가져온 키 목록은 foreach 문을 사용해 하나씩 순회하며 출력할 수 있습니다.
전체 예제 코드
지금까지의 내용을 하나로 합친 완전한 실행 코드는 다음과 같습니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Dictionary<int, string> d = new Dictionary<int, string>();
// 딕셔너리 요소 추가
d.Add(1, "One");
d.Add(2, "Two");
d.Add(3, "Three");
d.Add(4, "Four");
d.Add(5, "Five");
d.Add(6, "Six");
d.Add(7, "Seven");
d.Add(8, "Eight");
// 키 목록 가져오기
List<int> keys = new List<int>(d.Keys);
Console.WriteLine("키 목록 출력...");
foreach (int res in keys) {
Console.WriteLine(res);
}
}
}실행 결과
키 목록 출력... 1 2 3 4 5 6 7 8
추가 팁: LINQ 활용하기
LINQ를 선호한다면 d.Keys.ToList() 메서드를 사용해 한 줄로 동일한 결과를 얻을 수 있습니다. 단, 이 방법을 사용하려면 using System.Linq; 네임스페이스를 추가해야 합니다.
using System.Linq; List<int> keys = d.Keys.ToList();
두 방법 모두 성능 차이는 미미하므로, 프로젝트의 코드 스타일에 맞는 방식을 선택하시면 됩니다.