C# ICollection 인터페이스란 무엇인가?
C#에서 ICollection 인터페이스는 모든 비제네릭(non-generic) 컬렉션에 공통으로 적용되는 크기(Count), 열거자(Enumerator), 그리고 동기화(Synchronization) 기능을 정의하는 인터페이스입니다.
이 인터페이스는 System.Collections 네임스페이스에 속한 클래스들(ArrayList, Queue, Stack 등)이 구현하는 기본(base) 인터페이스로, 다양한 컬렉션을 일관된 방식으로 다룰 수 있게 해줍니다.
ICollection 인터페이스의 주요 속성
ICollection 인터페이스가 제공하는 속성은 다음과 같습니다.
| 번호 | 속성 이름 및 설명 |
|---|---|
| 1 | Count 컬렉션(ICollection)에 포함된 요소의 총 개수를 반환합니다. |
| 2 | SyncRoot 컬렉션(ICollection)에 대한 접근을 동기화(스레드 안전 처리)할 때 사용할 수 있는 개체를 가져옵니다. |
ICollection 인터페이스의 주요 메서드
ICollection 인터페이스가 제공하는 메서드는 다음과 같습니다.
| 번호 | 메서드 이름 및 설명 |
|---|---|
| 1 | CopyTo(Array, Int32) 컬렉션(ICollection)의 요소들을 지정한 배열(Array)로 복사합니다. 두 번째 매개변수는 복사가 시작될 배열의 인덱스입니다. |
| 2 | GetEnumerator() 컬렉션의 요소를 순회(iterate)할 수 있는 열거자(Enumerator)를 반환합니다. 이를 통해 foreach 문으로 컬렉션을 탐색할 수 있습니다. |
간단한 사용 예제
다음은 ICollection 인터페이스를 활용해 컬렉션의 요소 개수를 확인하고 요소를 순회하는 간단한 예제입니다.
using System;
using System.Collections;
class Program
{
static void Main()
{
ICollection collection = new ArrayList { 10, 20, 30 };
// Count 속성 사용
Console.WriteLine($"요소 개수: {collection.Count}");
// GetEnumerator()를 통한 순회 (foreach)
foreach (var item in collection)
{
Console.WriteLine(item);
}
}
}이처럼 ICollection 인터페이스는 컬렉션의 크기 확인, 요소 복사, 동기화 등 컬렉션 조작에 필요한 표준적인 기능을 제공하며, 제네릭 버전인 ICollection<T>의 기반이 되는 중요한 인터페이스입니다.