Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#의 IEnumerable 인터페이스란? 개념부터 주요 확장 메서드까지 한눈에 보기

C#에서 IEnumerable 인터페이스란?

IEnumerable은 C#에서 컬렉션을 열거(순회)할 수 있게 해주는 기본 인터페이스입니다. 이 인터페이스는 IEnumerator를 반환하는 단 하나의 메서드 GetEnumerator()를 정의하며, 열거가 가능한 모든 제네릭이 아닌(non-generic) 컬렉션의 기반이 되는 인터페이스입니다.

IEnumerable을 구현한 컬렉션은 foreach 문과 함께 사용할 수 있으며, 이를 통해 컬렉션 요소에 대한 읽기 전용(read-only) 접근이 가능해집니다. 즉, 별도의 인덱스 처리 없이도 배열, 리스트 등 다양한 데이터 집합을 간결하고 안전하게 순회할 수 있습니다.

GetEnumerator() 메서드

IEnumerable 인터페이스에는 다음과 같은 단 하나의 메서드가 선언되어 있습니다.

  • GetEnumerator() − 컬렉션 전체를 순회(iterate)할 수 있는 열거자(enumerator)를 반환합니다.

구현 예제

다음은 C#에서 IEnumerable 인터페이스의 GetEnumerator() 메서드를 구현한 일반적인 형태입니다.

IEnumerator IEnumerable.GetEnumerator() {
  return (IEnumerator) GetEnumerator();
}

IEnumerable의 주요 확장 메서드

LINQ와 함께 사용되는 IEnumerable 인터페이스에는 편리한 확장 메서드들이 제공됩니다. 대표적인 메서드는 다음과 같습니다.

번호메서드 이름 및 설명
1AsParallel()
쿼리를 병렬로 처리할 수 있도록 활성화하여 대용량 데이터 처리 성능을 향상시킵니다.
2AsQueryable()
IEnumerable을 IQueryable로 변환하여 LINQ 쿼리 공급자를 통한 실행을 지원합니다.
3Cast<TResult>()
IEnumerable의 요소들을 지정된 타입으로 캐스팅(형 변환)합니다.
4OfType<TResult>()
지정된 타입에 해당하는 요소들만 필터링하여 반환합니다.

정리

IEnumerable은 C# 컬렉션 순회의 핵심이 되는 인터페이스로, foreach 문 사용의 전제 조건이 됩니다. 또한 LINQ의 다양한 확장 메서드(AsParallel(), AsQueryable(), Cast<TResult>(), OfType<TResult>() 등)와 결합하면 데이터 조회, 변환, 필터링 작업을 훨씬 더 유연하고 효율적으로 수행할 수 있습니다.