[c#] C# 이터레이터 인터페이스
C#에서 이터레이터는 컬렉션을 반복하는 데 사용하는 편리한 방법입니다. 이터레이터를 작성하려면 IEnumerator
또는 IEnumerable
인터페이스를 구현해야 합니다.
IEnumerator 인터페이스
IEnumerator
인터페이스를 구현하면 컬렉션을 반복할 수 있는 메서드 MoveNext
와 현재 요소를 가리키는 속성 Current
를 제공합니다.
다음은 IEnumerator
인터페이스를 구현한 예시입니다.
public class MyCollection : IEnumerable
{
private object[] _items;
public MyCollection(object[] items)
{
_items = items;
}
public IEnumerator GetEnumerator()
{
return new MyEnumerator(_items);
}
}
public class MyEnumerator : IEnumerator
{
private object[] _items;
private int _position = -1;
public MyEnumerator(object[] items)
{
_items = items;
}
public bool MoveNext()
{
_position++;
return (_position < _items.Length);
}
public void Reset()
{
_position = -1;
}
public object Current
{
get { return _items[_position]; }
}
}
IEnumerable 인터페이스
IEnumerable
인터페이스를 구현하면 IEnumerator
인터페이스를 반환하는 GetEnumerator
메서드를 제공합니다.
다음은 IEnumerable
인터페이스를 구현한 예시입니다.
public class MyCollection : IEnumerable
{
private object[] _items;
public MyCollection(object[] items)
{
_items = items;
}
public IEnumerator GetEnumerator()
{
return new MyEnumerator(_items);
}
}
이와 같이 C# 이터레이터 인터페이스를 활용하여 컬렉션을 효과적으로 반복하고 조작할 수 있습니다.
더 자세한 정보는 Microsoft 공식 문서를 참고하세요.