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

C# Hashtable 클래스의 Keys 속성 완벽 가이드

C#에서 Hashtable 클래스의 Keys 속성은 해시테이블에 저장된 모든 키를 담고 있는 ICollection을 반환합니다. 이 속성을 활용하면 해시테이블 내부의 전체 키 목록에 손쉽게 접근할 수 있습니다.

Keys 속성의 기본 사용법

Keys 속성으로 얻은 컬렉션은 foreach 루프를 통해 간단히 순회할 수 있습니다. 아래 코드는 루프를 사용하여 해시테이블의 모든 키를 하나씩 출력하는 기본적인 방법을 보여줍니다.

foreach (int k in h.Keys) {
    Console.WriteLine(k);
}

위 코드를 실행하면 해시테이블에 포함된 모든 키가 화면에 출력됩니다.

전체 예제 코드

다음은 Hashtable에 여러 개의 키-값 쌍을 추가한 후, Keys 속성과 foreach 루프를 함께 사용하여 모든 키를 출력하는 완전한 예제입니다.

using System;
using System.Collections;

class Program {
    static void Main() {
        Hashtable h = new Hashtable();
        h.Add(1, "India");
        h.Add(2, "US");
        h.Add(3, "UK");
        h.Add(4, "Australia");
        h.Add(5, "Netherland");

        foreach (int k in h.Keys) {
            Console.WriteLine(k);
        }
    }
}

실행 결과

5
4
3
2
1

주의할 점

실행 결과를 보면 키가 1부터 5까지 추가했음에도 불구하고 5, 4, 3, 2, 1 순서로 출력된 것을 확인할 수 있습니다. 이는 Hashtable이 내부적으로 해시 버킷 방식으로 데이터를 저장하기 때문에 요소의 삽입 순서가 보장되지 않기 때문입니다.

따라서 키의 정렬 순서나 삽입 순서를 유지해야 하는 경우에는 SortedList, SortedDictionary<TKey, TValue> 또는 Dictionary<TKey, TValue>와 같은 제네릭 컬렉션을 사용하는 것이 좋습니다. 특히 최신 C# 개발에서는 박싱(boxing)과 언백싱(unboxing) 오버헤드가 없는 제네릭 컬렉션 사용이 권장됩니다.