IList 인터페이스는 인덱스를 통해 각 요소에 개별적으로 접근할 수 있는 비제네릭(non-generic) 객체 컬렉션을 나타냅니다. C#에서는 ArrayList와 같은 컬렉션 클래스가 IList를 구현하며, 이를 통해 요소 추가·삭제·검색 같은 기본적인 컬렉션 작업을 표준화된 방식으로 처리할 수 있습니다.
IList 인터페이스의 주요 속성
IList 인터페이스가 제공하는 대표적인 속성은 다음과 같습니다.
| 번호 | 속성 이름 및 설명 |
|---|---|
| 1 | Count ICollection에 포함된 요소의 총 개수를 가져옵니다. |
| 2 | IsFixedSize IList가 고정된 크기를 가지는지 여부를 나타내는 값을 가져옵니다. |
| 3 | IsReadOnly IList가 읽기 전용인지 여부를 나타내는 값을 가져옵니다. |
| 4 | IsSynchronized ICollection에 대한 접근이 스레드로부터 동기화되어 있는지 여부를 나타내는 값을 가져옵니다. |
| 5 | Item[Int32] 지정한 인덱스 위치의 요소를 가져오거나 설정합니다. |
IList 인터페이스의 주요 메서드
IList 인터페이스에서 사용할 수 있는 핵심 메서드는 다음과 같습니다.
| 번호 | 메서드 이름 및 설명 |
|---|---|
| 1 | Add(Object) IList에 새로운 항목을 추가합니다. |
| 2 | Clear() IList에서 모든 항목을 제거합니다. |
| 3 | Contains(Object) 목록에 특정 값이 포함되어 있는지 여부를 확인합니다. |
| 4 | GetEnumerator() 컬렉션을 반복(iterate)하는 데 사용되는 열거자(Enumerator)를 반환합니다. |
| 5 | IndexOf(Object) IList에서 지정된 항목이 위치한 인덱스를 반환합니다. |
| 6 | Remove(Object) 특정 개체가 처음으로 나타나는 위치의 항목을 제거합니다. |
간단한 사용 예제
다음은 IList를 활용해 요소를 추가하고 조회하는 기본적인 예제입니다.
using System;
using System.Collections;
class Program {
static void Main() {
IList list = new ArrayList();
list.Add(100);
list.Add(200);
list.Add(300);
Console.WriteLine("요소 개수: " + list.Count);
Console.WriteLine("200의 인덱스: " + list.IndexOf(200));
list.Remove(200);
Console.WriteLine("삭제 후 요소 개수: " + list.Count);
}
}이처럼 IList는 인덱스 기반 접근이 필요한 컬렉션을 다룰 때 유용하게 사용되며, 제네릭 버전인 IList<T>를 함께 활용하면 타입 안전성까지 확보할 수 있습니다.