C#의 SortedList 클래스는 키를 기준으로 자동 정렬되는 키-값 쌍 컬렉션을 제공합니다. 이 컬렉션에 저장된 값이나 키만 따로 추출하고 싶을 때는 각각 Values 속성과 Keys 속성을 사용하면 됩니다. 두 속성은 모두 ICollection 인터페이스 형태로 반환되므로, foreach 문을 통해 손쉽게 순회할 수 있습니다.
예제 1: 정수 키와 문자열 값 사용하기
SortedList 개체에 저장된 값과 키를 가져오는 기본적인 코드는 다음과 같습니다.
using System;
using System.Collections;
public class Demo {
public static void Main(String[] args) {
SortedList list = new SortedList();
list.Add(1, "One");
list.Add(2, "Two");
list.Add(3, "Three");
list.Add(4, "Four");
list.Add(5, "Five");
ICollection col1 = list.Values;
Console.WriteLine("Values...");
foreach(string s in col1)
Console.WriteLine(s);
ICollection col2 = list.Keys;
Console.WriteLine("Keys...");
foreach(int s in col2)
Console.WriteLine(s);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Values... One Two Three Four Five Keys... 1 2 3 4 5
예제 2: 문자열 키와 문자열 값 사용하기
이번에는 키도 문자열인 경우의 예제를 살펴보겠습니다.
using System;
using System.Collections;
public class Demo {
public static void Main(String[] args) {
SortedList list = new SortedList();
list.Add("A", "Jacob");
list.Add("B", "Sam");
list.Add("C", "Tom");
list.Add("D", "John");
list.Add("E", "Tim");
list.Add("F", "Mark");
list.Add("G", "Gary");
list.Add("H", "Nathan");
list.Add("I", "Shaun");
list.Add("J", "David");
ICollection col1 = list.Values;
Console.WriteLine("Values...");
foreach(string s in col1)
Console.WriteLine(s);
ICollection col2 = list.Keys;
Console.WriteLine("\nKeys...");
foreach(string s in col2)
Console.WriteLine(s);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Values... Jacob Sam Tom John Tim Mark Gary Nathan Shaun David Keys... A B C D E F G H I J
핵심 정리
list.Values: SortedList에 저장된 모든 값(value)을ICollection으로 반환합니다.list.Keys: SortedList에 저장된 모든 키(key)를ICollection으로 반환합니다.- SortedList는 요소가 추가될 때마다 키를 기준으로 오름차순 정렬을 유지하므로, 출력 결과도 항상 정렬된 순서로 나타납니다.
System.Collections네임스페이스를 using 문에 포함해야 SortedList 클래스를 사용할 수 있습니다.