정렬 리스트(SortedList)는 배열과 해시 테이블이 결합된 자료구조입니다. 내부적으로 항목들이 키를 기준으로 정렬되어 저장되며, 키(key) 또는 인덱스(index)를 사용하여 각 요소에 접근할 수 있습니다.
Item 속성이란?
SortedList 클래스의 Item 속성은 특정 키와 연결된 값을 가져오거나(get) 설정(set)하는 역할을 합니다. C#에서는 인덱서 형태로 제공되기 때문에 대괄호([]) 문법을 통해 손쉽게 사용할 수 있습니다.
새로운 요소 추가하기
Item 속성은 새로운 요소를 추가하는 용도로도 활용할 수 있습니다. 만약 지정한 키가 아직 존재하지 않는다면, 다음과 같이 새로운 키-값 쌍이 자동으로 추가됩니다.
myCollection["myNonexistentKey"] = myValue;
반대로 해당 키가 이미 존재하는 경우에는 기존의 값이 삭제되지 않고 새로운 값으로 덮어쓰기(overwrite) 됩니다.
예제 코드
아래 예제를 통해 C#에서 SortedList 클래스의 Item 속성을 실제로 어떻게 활용하는지 살펴보겠습니다.
using System;
using System.Collections;
namespace Demo {
class Program {
static void Main(string[] args) {
SortedList s = new SortedList();
// Add 메서드로 요소 추가
s.Add("S001", "Jack");
s.Add("S002", "Henry");
// Item 속성(인덱서)으로 새 요소 추가
s["S003"] = "Brad";
// 키 컬렉션을 가져와 전체 출력
ICollection key = s.Keys;
foreach (string k in key) {
Console.WriteLine(k + ": " + s[k]);
}
}
}
}
실행 결과
S001: Jack S002: Henry S003: Brad
정리
위 예제에서 볼 수 있듯이, s["S003"] = "Brad"; 코드는 Add() 메서드를 호출하지 않고도 Item 속성을 통해 새로운 요소를 추가하는 모습입니다. 또한 s[k]처럼 인덱서를 활용하면 반복문 안에서 각 키에 대응하는 값을 간편하게 조회할 수 있습니다. 이처럼 Item 속성은 SortedList에서 값 읽기, 값 수정, 신규 요소 추가까지 하나의 문법으로 처리할 수 있는 매우 유용한 기능입니다.