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

C# Hashtable 클래스란? 주요 메서드와 사용 예제 총정리

C#의 Hashtable 클래스는 키(key)의 해시 코드(hash code)를 기준으로 구성되는 키-값(key-value) 쌍 컬렉션을 나타냅니다. Hashtable은 System.Collections 네임스페이스에 속해 있으며, 인덱스가 아닌 키를 통해 컬렉션 내 요소에 빠르게 접근할 수 있다는 것이 가장 큰 특징입니다.

Hashtable에서 자주 사용되는 대표적인 메서드는 다음과 같습니다.

번호메서드 및 설명
1public virtual void Add(object key, object value);
지정한 키와 값으로 이루어진 요소를 Hashtable에 추가합니다.
2public virtual void Clear();
Hashtable에 있는 모든 요소를 제거합니다.
3public virtual bool ContainsKey(object key);
Hashtable에 특정 키가 존재하는지 여부를 확인합니다.
4public virtual bool ContainsValue(object value);
Hashtable에 특정 값이 존재하는지 여부를 확인합니다.

아래는 C#에서 Hashtable 클래스를 실제로 사용하는 방법을 보여주는 예제입니다.

예제 코드

using System;
using System.Collections;
namespace Demo {
    class Program {
        static void Main(string[] args) {
            Hashtable ht = new Hashtable();
            ht.Add("D01", "Finance");
            ht.Add("D02", "HR");
            ht.Add("D03", "Operations");
            if (ht.ContainsValue("Marketing")) {
                Console.WriteLine("This department name is already in the list");
            } else {
                ht.Add("D04", "Marketing");
            }
            ICollection key = ht.Keys;
            foreach (string k in key) {
                Console.WriteLine(k + ": " + ht[k]);
            }
            Console.ReadKey();
        }
    }
}

위 예제에서는 Hashtable 클래스의 Add() 메서드를 사용하여 키와 값의 쌍으로 요소를 추가했습니다.

Hashtable ht = new Hashtable();

ht.Add("D01", "Finance");
ht.Add("D02", "HR");
ht.Add("DO3", "Operations");

실행 결과

D04: Marketing
D02: HR
D03: Operations
D01: Finance

예제를 살펴보면 먼저 세 개의 부서 데이터를 키-값 형태로 추가한 뒤, ContainsValue() 메서드로 "Marketing"이라는 값이 이미 존재하는지 확인하고 없으면 새로 추가합니다. 마지막으로 Keys 속성을 통해 모든 키를 순회하며 전체 데이터를 출력합니다.

참고로 Hashtable은 키-값 쌍의 저장 순서를 보장하지 않으므로, 출력 결과의 순서는 실행 환경에 따라 달라질 수 있습니다. 또한 최신 C# 프로젝트에서는 타입 안정성이 보장되는 제네릭 컬렉션인 Dictionary<TKey, TValue>를 사용하는 것이 일반적으로 권장됩니다.