[c#] C# 이터레이터와 IEnumerable

C#에서 이터레이터(Iterator) 및 IEnumerable 인터페이스는 컬렉션을 반복하고 순회하는 강력한 방법을 제공합니다. 이 블로그 포스트에서는 C#에서 이터레이터와 IEnumerable을 사용하는 방법에 대해 살펴보겠습니다.

1. IEnumerable 인터페이스

IEnumerable은 컬렉션을 반복할 수 있도록 하는 인터페이스입니다. IEnumerable을 구현하고 있는 클래스는 foreach 루프를 사용하여 컬렉션의 요소를 순회할 수 있습니다.

public class MyCollection : IEnumerable
{
    private int[] data = new int[5] { 1, 2, 3, 4, 5 };

    public IEnumerator GetEnumerator()
    {
        return data.GetEnumerator();
    }
}

위 예제에서, MyCollection 클래스는 IEnumerable 인터페이스를 구현하고 있으며 GetEnumerator 메서드를 통해 컬렉션의 요소를 반환합니다.

2. 이터레이터

이터레이터는 컬렉션을 반복하고 컬렉션의 각 요소에 접근하는 메커니즘을 제공합니다. C#에서는 yield 키워드를 사용하여 이터레이터를 생성할 수 있습니다.

public class MyCollection
{
    private int[] data = new int[5] { 1, 2, 3, 4, 5 };

    public IEnumerable<int> GetItems()
    {
        foreach (int item in data)
        {
            yield return item;
        }
    }
}

위 예제에서, GetItems 메서드는 IEnumerable를 반환하며, yield return을 통해 각 요소를 반환합니다.

3. 사용 예

이제 이터레이터와 IEnumerable을 사용하여 컬렉션을 순회해 보겠습니다.

MyCollection collection = new MyCollection();
foreach (int item in collection.GetItems())
{
    Console.WriteLine(item);
}

요약

C#에서는 IEnumerable 인터페이스와 yield 키워드를 사용하여 이터레이터를 구현할 수 있습니다. 이를 통해 컬렉션을 간편하게 반복하고 처리할 수 있습니다.

더 많은 정보를 원하시면 MSDN를 참고하세요.