using System;
using System.Collections;
public class SamplesHashtable {
public static void Main() {
Hashtable myHT = new Hashtable();
//해쉬테이블에 Key, Value 추가
myHT.Add("First", "Hello");
myHT.Add("Second", "World");
myHT.Add("Third", "welcome");
myHT.Add("Four", "!");
Print("1. myHT 전체목록:", myHT);
// 결과 : Third:welcome, Second:World, Four:!, First:Hello, 요소의 갯수:4
//특정키 존재여부 : 결과는 True or False
bool IsContain= myHT.ContainsKey("First");
Console.WriteLine("2. First 키의 존재여부:" + IsContain);
// 결과 : True
//해쉬테이블의 Key값만 출력
Console.Write("3. 키값들만 출력\n\t");
ICollection mykey = myHT.Keys;
foreach(object obj in mykey)
Console.Write( "{0},", obj);
// 결과 : Third,Second,Four,First,
//해쉬테이블의 Value값들만 출력
Console.WriteLine();
Console.Write("4. Value들만 출력\n\t");
ICollection myval = myHT.Values;
foreach(object obj in myval)
Console.Write( "{0},", obj);
// 결과 : welcome,World,!,Hello,
// 해쉬테이블의 특정값 출력
Console.WriteLine();
myHT.Remove("Four");
//public virtual void Remove(object key);
//해시테이블에서 특정키에 해당하는 Value를 추출하고자 할때는
//반복문에서 조건문을 이용해야만 가능합니다.
// Item속성이 있긴하지만 C#에서의 사용법이 정확하지가 않군요...
// 혹시 아시는 분이 계시다면...^^
Print("5. 데이터삭제:", myHT);
// 결과 : Third:welcome, Second:World, First:Hello, 요소의 갯수:3
}
public static void Print( String info, Hashtable myList)
{
// Hashtable에서 모든 데이터를 검색할 때는 속성이나 IEnumerator를 이용하는 것 보다
// IEnumerator와 IDictionary 성질을 동시에 지니고 있는
// IDictionaryEnumerator 인터페이스를 이용합니다.
// 이 때 Hashtable의 GetEnumerator() 메서드를 통해서
// IDictionaryEnumerator 객체를 얻어 냅니다.
IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
Console.Write(info + "\n\t");
while ( myEnumerator.MoveNext() )
Console.Write("{0}:{1}, ", myEnumerator.Key, myEnumerator.Value);
Console.Write(" 요소의 갯수:" + myList.Count + "\n");
}
}
[출처] [펌] 해시테이블(HashTable) 사용하기|작성자 눈꽃천사
SSISO Community