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

C# ToDictionary 메서드 완벽 가이드 – 컬렉션을 딕셔너리로 변환하기

C# ToDictionary 메서드란?

ToDictionary 메서드는 C# LINQ에서 제공하는 확장 메서드로, IEnumerable 컬렉션을 Dictionary(딕셔너리) 형태로 손쉽게 변환할 수 있게 해줍니다. 각 요소에 대해 키(key)와 값(value)을 지정하는 람다 식을 전달하면, 컬렉션이 키-값 쌍으로 구성된 딕셔너리로 변환됩니다.

기본 사용법

먼저 문자열 배열을 하나 생성해 보겠습니다.

string[] str = new string[] {"Car", "Bus", "Bicycle"};

이제 ToDictionary 메서드를 사용해 이 컬렉션을 Dictionary로 변환합니다.

str.ToDictionary(item => item, item => true);

여기서 첫 번째 람다 식 item => item은 각 요소 자신을 로 지정하고, 두 번째 람다 식 item => true는 각 요소의 을 true로 지정하는 역할을 합니다.

전체 예제 코드

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

class Demo {
    static void Main() {
        string[] str = new string[] {"Car", "Bus", "Bicycle"};
        // ToDictionary에서 키와 값 지정
        var d = str.ToDictionary(item => item, item => true);
        foreach (var ele in d) {
            Console.WriteLine("{0}, {1}", ele.Key, ele.Value);
        }
    }
}

실행 결과

Car, True
Bus, True
Bicycle, True

사용 시 주의 사항

ToDictionary 메서드를 활용할 때는 다음 사항을 유의해야 합니다.

  • 중복 키 금지: 키 선택자가 동일한 키를 두 개 이상 반환하면 ArgumentException이 발생합니다.
  • null 키 불가: 키가 null로 평가되면 예외가 발생합니다. 반면 값은 null이 허용됩니다.
  • 즉시 실행 방식: ToDictionary는 즉시 실행(immediate execution) 메서드이므로, 호출되는 시점에 실제 변환이 수행됩니다.

이처럼 ToDictionary 메서드를 사용하면 별도의 반복문 없이도 컬렉션을 깔끔하게 딕셔너리로 변환할 수 있어 코드의 가독성과 생산성을 크게 높일 수 있습니다.