C# SortedList 클래스란?
SortedList(정렬 리스트)는 C#에서 제공하는 컬렉션 클래스로, 배열(Array)과 해시 테이블(Hashtable)의 특성을 결합한 구조입니다. 저장된 항목은 키(Key) 또는 인덱스(Index)를 통해 접근할 수 있으며, 인덱스로 접근할 때는 ArrayList처럼, 키로 접근할 때는 Hashtable처럼 동작합니다.
특히 SortedList의 가장 큰 특징은 컬렉션에 저장된 항목들이 항상 키 값을 기준으로 자동 정렬된다는 점입니다. 따라서 데이터를 순서대로 관리해야 하는 상황에서 매우 유용하게 활용할 수 있습니다.
SortedList에 키-값 쌍 추가하기
다음은 Add() 메서드를 사용하여 SortedList에 4개의 키-값 쌍을 추가하는 기본 예제입니다.
using System;
using System.Collections;
namespace Demo {
class Program {
static void Main(string[] args) {
SortedList s = new SortedList();
s.Add("S1", "Maths");
s.Add("S2", "Science");
s.Add("S3", "English");
s.Add("S4", "Economics");
}
}
}Add() 메서드는 첫 번째 인자로 키를, 두 번째 인자로 값을 받습니다. 위 예제에서는 과목 코드를 키로, 과목 이름을 값으로 저장했습니다.
SortedList의 키 가져와서 출력하기
이번에는 Keys 속성을 통해 SortedList에 저장된 모든 키를 가져오고, foreach 문으로 하나씩 출력하는 방법을 살펴보겠습니다.
using System;
using System.Collections;
namespace Demo {
class Program {
static void Main(string[] args) {
SortedList sl = new SortedList();
sl.Add("ST0", "One");
sl.Add("ST1", "Two");
sl.Add("ST2", "Three");
sl.Add("ST3", "Four");
sl.Add("ST4", "Five");
sl.Add("ST5", "Six");
sl.Add("ST6", "Seven");
ICollection key = sl.Keys;
foreach (string k in key) {
Console.WriteLine(k);
}
}
}
}Keys 속성은 SortedList에 포함된 키들의 컬렉션(ICollection)을 반환합니다. foreach 루프를 사용하면 각 키를 순회하며 처리할 수 있습니다.
실행 결과
위 코드를 실행하면 키가 정렬된 순서대로 다음과 같이 출력됩니다.
ST0 ST1 ST2 ST3 ST4 ST5 ST6
이처럼 SortedList는 항목을 추가하는 즉시 키를 기준으로 내부적으로 정렬을 유지하기 때문에, 별도의 정렬 작업 없이도 항상 정렬된 상태의 데이터를 얻을 수 있다는 장점이 있습니다.