KeyValuePair<TKey, TValue>는 C#에서 제공하는 구조체(struct)로, 키와 값을 쌍으로 묶어서 관리할 수 있게 해줍니다. 주로 컬렉션에서 특정 항목의 키와 값을 함께 다룰 때 사용됩니다.

주요 특징

  1. 제네릭 타입: KeyValuePair는 제네릭 타입으로, 키와 값의 데이터 타입을 지정할 수 있습니다. 예를 들어, KeyValuePair<int, string>는 정수형 키와 문자열 값을 가지는 쌍을 의미합니다.
  2. 구성: KeyValuePair는 두 개의 읽기 전용 속성, Key와 Value,으로 구성됩니다. Key는 쌍의 키를, Value는 쌍의 값을 나타냅니다.
  3. 불변성: KeyValuePair의 키와 값은 읽기 전용 속성으로 정의되어 있으며, 한 번 생성된 후에는 변경할 수 없습니다.

사용 예제

다음은 KeyValuePair를 사용하는 몇 가지 예제입니다.

1. 기본 사용

// KeyValuePair 생성 KeyValuePair<int, string> kvp = new KeyValuePair<int, string>(1, "Value"); // 키와 값에 접근 Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");

2. Dictionary에서 사용

Dictionary 클래스는 내부적으로 KeyValuePair를 사용하여 키와 값을 저장합니다.

Dictionary<string, int> dictionary = new Dictionary<string, int>(); // 키와 값을 추가 dictionary.Add("Apple", 1); dictionary.Add("Banana", 2); // Dictionary의 모든 항목을 반복 foreach (KeyValuePair<string, int> kvp in dictionary) { Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}"); }

3. LINQ와 함께 사용

LINQ를 사용할 때 KeyValuePair를 반환하는 메서드를 사용할 수 있습니다.

var list = new List<KeyValuePair<string, int>>() { new KeyValuePair<string, int>("Apple", 1), new KeyValuePair<string, int>("Banana", 2), }; var result = list.Where(kvp => kvp.Value > 1); foreach (var kvp in result) { Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}"); }

이와 같이 KeyValuePair는 다양한 상황에서 유용하게 사용될 수 있으며, 특히 컬렉션과 관련된 작업에서 많이 활용됩니다.

+ Recent posts