개발/C#

IEnumerable과 IEnumerator 인터페이스

한번사는인생. 2018. 3. 2. 13:55

1. IEnumerable

IEnumerable 인터페이스의 목적은 foreach 구문을 사용할 수 있게 하는 것이다.

컬렉션 객체를 사용할때 포함된 원소들에 대해서 반복 작업을 편하게 할 수 있게 해준다.

C#의 컬랙션 객체들은 기본적으로 IEnumerable 인터페이스를 구현하고 있다.

정의된 함수는 GetEnumerator() 이다.


1
2
3
public interface IEnumerable {
   IEnumerator GetEnumerator( );
}
cs



2. IEnumerator

내부적으로 몇번째 원소까지 데이터를 읽었는지 기억하는 '커서'와 원소 집합에 대한 레퍼런스를 가지고 있어야 한다.
속성과 메소드가 호출될 때 마다 커서를 변경해서 알맞는 원소를 반환하도록 구현되어야 한다.


1
2
3
4
5
public interface IEnumerator {
   object Current { get; }
   bool MoveNext( );
   void Reset( );
}
cs