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

C# Hashtable에서 키(Key)를 포함하는 ICollection 가져오는 방법

개요

C#에서 Hashtable에 저장된 모든 키(Key)를 담고 있는 ICollection을 가져오려면 Keys 속성을 사용하면 됩니다. Keys 속성은 해시테이블 내부에 있는 모든 키로 구성된 컬렉션을 반환하며, 이를 foreach 문과 함께 활용하면 각 키와 그에 대응하는 값을 손쉽게 조회할 수 있습니다.

예제 1: 문자열 키 사용하기

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Hashtable hash = new Hashtable();
      hash.Add("A", "Electronics");
      hash.Add("B", "Appliances");
      hash.Add("C", "Pet Supplies");
      hash.Add("D", "Books");
      hash.Add("E", "Toys");
      hash.Add("F", "Footwear");
      hash.Add("G", "Clothing");

      ICollection col = hash.Keys;
      foreach(string str in col)
         Console.WriteLine(str + ": " + hash[str]);
   }
}

출력 결과

G: Clothing
A: Electronics
B: Appliances
C: Pet Supplies
D: Books
E: Toys
F: Footwear

위 코드에서는 hash.Keys를 호출하여 모든 키를 ICollection 형태로 가져온 뒤, foreach 루프를 통해 각 키를 하나씩 꺼내고 인덱서(hash[str])를 이용해 대응하는 값까지 함께 출력했습니다.

참고: Hashtable은 요소의 저장 순서를 보장하지 않습니다. 따라서 출력되는 항목의 순서는 입력한 순서와 다르게 나타날 수 있으며, 이는 정상적인 동작입니다.

예제 2: 정수형 키 사용하기

이번에는 키의 타입이 정수(int)인 경우를 살펴보겠습니다.

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Hashtable hash = new Hashtable();
      hash.Add(1, "AB");
      hash.Add(2, "CD");
      hash.Add(3, "EF");
      hash.Add(4, "GH");
      hash.Add(5, "IJ");
      hash.Add(6, "KL");
      hash.Add(7, "MN");

      ICollection col = hash.Keys;
      foreach(int str in col)
         Console.WriteLine("Key = " + str + ", Value = " + hash[str]);
   }
}

출력 결과

Key = 7, Value = MN
Key = 6, Value = KL
Key = 5, Value = IJ
Key = 4, Value = GH
Key = 3, Value = EF
Key = 2, Value = CD
Key = 1, Value = AB

문자열뿐만 아니라 정수형 키도 동일한 방식으로 처리됩니다. foreach 변수의 타입을 키의 실제 타입(int)에 맞춰주면 되며, 나머지 로직은 완전히 같습니다.

정리

Hashtable.Keys 속성은 해시테이블의 모든 키를 담은 ICollection을 반환하는 가장 간단하고 직관적인 방법입니다. 반환된 컬렉션은 읽기 전용 스냅샷 역할을 하므로, 키를 순회하면서 원본 해시테이블을 수정하면 안 된다는 점도 기억해 두세요. 키 목록을 안전하게 조회하거나 반복 처리할 때 유용하게 활용할 수 있습니다.