IEnumerable<T>는 C#의 컬렉션 인터페이스 중 하나로, 제네릭 타입을 지원하며 반복 가능한 컬렉션을 나타냅니다. 이 인터페이스는 데이터를 순차적으로 접근할 수 있는 기능을 제공합니다. IEnumerable는 .NET의 System.Collections.Generic 네임스페이스에 포함되어 있습니다.
주요 특징
순차적 접근: IEnumerable<T>는 컬렉션의 요소를 순차적으로 접근할 수 있게 합니다.
읽기 전용: IEnumerable<T>는 컬렉션의 요소를 읽기만 할 수 있으며, 수정은 불가능합니다.
LINQ 지원: LINQ 쿼리를 사용하여 IEnumerable<T> 컬렉션을 쉽게 처리할 수 있습니다.
지연 실행: LINQ 쿼리를 통해 IEnumerable<T> 컬렉션을 처리할 때 지연 실행을 지원합니다. 이는 쿼리가 실제로 반복될 때까지 실행되지 않음을 의미합니다.
주요 메서드
GetEnumerator(): IEnumerator<T>를 반환하여 컬렉션을 반복할 수 있게 합니다
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// List<T>는 IEnumerable<T>를 구현합니다.
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// IEnumerable<T>로 선언하여 사용할 수 있습니다.
IEnumerable<int> enumerableNumbers = numbers;
// foreach를 사용하여 요소를 순차적으로 접근합니다.
foreach (int number in enumerableNumbers)
{
Console.WriteLine(number);
}
// LINQ 쿼리를 사용할 수도 있습니다.
var evenNumbers = enumerableNumbers.Where(n => n % 2 == 0);
Console.WriteLine("Even numbers:");
foreach (int evenNumber in evenNumbers)
{
Console.WriteLine(evenNumber);
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
IEnumerable<int> enumerable = numbers;
IEnumerator<int> enumerator = enumerable.GetEnumerator();
while (enumerator.MoveNext())
{
int number = enumerator.Current;
Console.WriteLine(number);
}
}
}