C#에서 ContainsKey() 메서드는 Hashtable 컬렉션 안에 특정 키가 존재하는지 여부를 확인할 때 사용하는 대표적인 메서드입니다. 키가 존재하면 True를, 존재하지 않으면 False를 반환하므로, 데이터를 조회하기 전에 유효성을 검사하는 용도로 매우 유용하게 활용됩니다.
Hashtable 컬렉션 준비하기
먼저 Hashtable 컬렉션을 생성하고 몇 가지 요소를 추가해 보겠습니다.
Hashtable h = new Hashtable(); h.Add(1, "Sam"); h.Add(2, "Jack"); h.Add(3, "Andy"); h.Add(4, "Katie"); h.Add(5, "Beth"); h.Add(6, "Benjamin");
ContainsKey() 메서드 사용 방법
Hashtable에 특정 키가 있는지 확인하려면 ContainsKey() 메서드에 찾고자 하는 키를 인수로 전달하면 됩니다. 예를 들어 키 3이 존재하는지 확인하는 코드는 다음과 같습니다.
h.ContainsKey(3);
키 3이 Hashtable에 있으므로 이 코드는 True를 반환합니다.
전체 예제 코드
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable h = new Hashtable();
h.Add(1, "Sam");
h.Add(2, "Jack");
h.Add(3, "Andy");
h.Add(4, "Katie");
h.Add(5, "Beth");
h.Add(6, "Benjamin");
Console.WriteLine("Keys and Values list:");
foreach (var key in h.Keys ) {
Console.WriteLine("Key = {0}, Value = {1}",key , h[key]);
}
Console.WriteLine("Does the specified key exist? "+h.ContainsKey(3));
}
}실행 결과
Keys and Values list: Key = 6, Value = Benjamin Key = 5, Value = Beth Key = 4, Value = Katie Key = 3, Value = Andy Key = 2, Value = Jack Key = 1, Value = Sam Does the specified key exist? True
정리
위 실행 결과에서 볼 수 있듯이, ContainsKey(3)은 Hashtable에 키 3이 존재하기 때문에 True를 반환했습니다. 참고로 Hashtable은 내부적으로 해시 기반 구조를 사용하기 때문에 키 조회 속도가 매우 빠르며, 존재하지 않는 키에 접근할 때 발생할 수 있는 오류를 사전에 방지하는 안전장치로도 활용할 수 있습니다. 또한 값의 존재 여부를 확인하고 싶다면 ContainsValue() 메서드를 사용하면 됩니다.