[c#] C# 이터레이터와 IEnumerable 인터페이스

C#에서 이터레이터(iterator) 및 IEnumerable<T> 인터페이스는 컬렉션을 효과적으로 조작하고 반복하는 데 사용됩니다. 이는 코드를 보다 간결하게 만들어주며, 메모리를 절약할 수 있습니다.

이터레이터(iterator)

C#의 이터레이터는 yield 키워드를 사용하여 반복 가능한 시퀀스를 만들 수 있습니다. 아래는 이터레이터를 사용한 간단한 예제입니다.

public IEnumerable<int> GetNumbers()
{
    yield return 1;
    yield return 2;
    yield return 3;
}

위 코드는 GetNumbers 메서드가 IEnumerable<int>를 반환하는데, 실제로는 반복 가능한 시퀀스를 생성합니다.

IEnumerable 인터페이스

IEnumerable<T> 인터페이스는 단순한 반복에 사용될 뿐만 아니라 LINQ 쿼리와 함께 사용되어 컬렉션을 처리하는 데 유용합니다. IEnumerable<T>를 구현하는 클래스는 foreach 루프 및 LINQ 쿼리에서 사용될 수 있습니다.

public class MyCollection : IEnumerable<int>
{
    private List<int> numbers = new List<int>();

    public void AddNumber(int number)
    {
        numbers.Add(number);
    }

    public IEnumerator<int> GetEnumerator()
    {
        foreach (int number in numbers)
        {
            yield return number;
        }
    }

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

위 예제에서 MyCollection 클래스가 IEnumerable<int>를 구현했으며, GetEnumerator 메서드를 사용하여 yield를 통해 반복 가능한 시퀀스를 생성합니다.

이러한 기능들을 통해 C#에서 컬렉션을 효율적으로 다룰 수 있으며, 코드를 보다 간결하게 만들 수 있습니다.

참고 자료

이제 C#에서 이터레이터와 IEnumerable<T> 인터페이스가 어떻게 사용되는지에 대해 조금 더 이해하셨을 것입니다. 만약 궁금한 점이 있거나 다른 질문이 있다면 언제든지 알려주세요!