[HashTable, SortedList]역순출력하기예제
꽁스짱
C#
0
819
2021.02.15 23:11
[HashTable, SortedList]역순출력하기예제
using System;
using System.Collections;
class Example
{
public static void Main()
{
Hashtable onj = new Hashtable();
onj.Add("김길동", "서울");
onj.Add("홍길동", "광주");
onj.Add("박길동", "부산");
try
{
onj.Add("김길동", "서울");
}
catch
{
Console.WriteLine("키값 중복...");
}
Console.WriteLine("For key = \"name\", value = {0}.", onj["홍길동"]);
onj["박길동"] = "제주";
Console.WriteLine("For key = \"name\", value = {0}.", onj["박길동"]);
if (!onj.ContainsKey("최길동"))
{
onj.Add("최길동", "하와이"); Console.WriteLine("Value added for key = \"who\": {0}", onj["최길동"]);
}
Console.WriteLine();
//출력순서를 확읶하자.(입력된 순서로 나오는 것은 아님)
foreach (DictionaryEntry d in onj)
{
Console.WriteLine("Key = {0}, Value = {1}", d.Key, d.Value);
}
Console.WriteLine("----------");
SortedList s = new SortedList(onj, new ListReverser()); //해시테이블 정렬하기위해 SoretedList에 넣음
foreach (DictionaryEntry d in s) //키값이 정렬된 형식으로 출력
{
Console.WriteLine("Key = {0}, Value = {1}", d.Key, d.Value);
}
}
class ListReverser : IComparer
{
public int Compare(object x, object y)
{
if (x == y) return 0;
return (((string)x).CompareTo((string)y) > 0) ? -1 : 1;
}
}
}