C#의 ListDictionary는 키와 값의 쌍을 저장하는 특수한 컬렉션 클래스로, System.Collections.Specialized 네임스페이스에 속해 있습니다. 이 클래스는 항목 수가 적은(일반적으로 10개 미만) 컬렉션에서 뛰어난 성능을 발휘하도록 설계되었습니다.
ListDictionary에서 지정된 키와 연결된 값을 가져오거나 설정하려면 인덱서(Item 속성)를 사용하면 됩니다. 인덱서를 통해 키를 지정하면 해당 값에 접근할 수 있으며, 기존 키에 새 값을 할당하면 값이 업데이트됩니다.
예제 1: 키로 값 가져오기
다음 예제는 ListDictionary에 여러 키-값 쌍을 추가한 후, 인덱서를 사용하여 특정 키("C")에 연결된 값을 조회하는 방법을 보여줍니다.
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
ListDictionary dict = new ListDictionary();
dict.Add("A", "Books");
dict.Add("B", "Electronics");
dict.Add("C", "Appliances");
dict.Add("D", "Pet Supplies");
dict.Add("E", "Clothing");
dict.Add("F", "Footwear");
Console.WriteLine("키 C에 연결된 값 = " + dict["C"]);
}
}출력
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
키 C에 연결된 값 = Appliances
예제 2: 키로 값 설정(업데이트)하기
인덱서에 새 값을 할당하면 해당 키와 연결된 기존 값이 변경됩니다. 아래 예제에서는 키 "C"의 값을 "HDD"로 업데이트하는 과정을 확인할 수 있습니다.
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
ListDictionary dict = new ListDictionary();
dict.Add("A", "Books");
dict.Add("B", "Electronics");
dict.Add("C", "Appliances");
dict.Add("D", "Pet Supplies");
dict.Add("E", "Clothing");
dict.Add("F", "Footwear");
Console.WriteLine("키 C에 연결된 값 = " + dict["C"]);
dict["C"] = "HDD";
Console.WriteLine("키 C에 연결된 값 [업데이트 후] = " + dict["C"]);
}
}출력
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
키 C에 연결된 값 = Appliances 키 C에 연결된 값 [업데이트 후] = HDD
정리
이처럼 ListDictionary의 인덱서를 활용하면 지정된 키와 연결된 값을 손쉽게 읽고 수정할 수 있습니다. 참고로, 존재하지 않는 키로 값을 설정하면 새로운 키-값 쌍이 추가되며, 존재하지 않는 키로 값을 읽으려 하면 null이 반환됩니다.