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

C# Dictionary에서 키 목록을 손쉽게 추출하는 방법

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();

두 방법 모두 성능 차이는 미미하므로, 프로젝트의 코드 스타일에 맞는 방식을 선택하시면 됩니다.