KeyValuePair<TKey, TValue>는 C#에서 제공하는 구조체(struct)로, 키와 값을 쌍으로 묶어서 관리할 수 있게 해줍니다. 주로 컬렉션에서 특정 항목의 키와 값을 함께 다룰 때 사용됩니다.
주요 특징
- 제네릭 타입: KeyValuePair는 제네릭 타입으로, 키와 값의 데이터 타입을 지정할 수 있습니다. 예를 들어, KeyValuePair<int, string>는 정수형 키와 문자열 값을 가지는 쌍을 의미합니다.
- 구성: KeyValuePair는 두 개의 읽기 전용 속성, Key와 Value,으로 구성됩니다. Key는 쌍의 키를, Value는 쌍의 값을 나타냅니다.
- 불변성: 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는 다양한 상황에서 유용하게 사용될 수 있으며, 특히 컬렉션과 관련된 작업에서 많이 활용됩니다.
'c# 언어 > 중급과정' 카테고리의 다른 글
GetInstance를 활용한 List<string> 예제 (0) | 2024.08.27 |
---|---|
(CHAT.GPT)dotnet new wpf -n sampleNM & dotnet add package (0) | 2024.08.13 |
모든 네트워크 인터페이스(0.0.0.0)와 로컬 IPv6 주소(::1)에서 수신 대기 상태로 만들기 (0) | 2024.08.10 |
(CHAT.GPT) ManualResetEvent를 통해 메인 스레드를 대기시킴 (0) | 2024.08.04 |
정보분배수신/(동기식)HttpListener Interface/SQLite DB저장(file) (0) | 2024.07.24 |