IEnumerable<T>의 MoveNext( ) 메서드와 Current 속성
IEnumerable<T> 형태는 내부적으로 MoveNext() 메서드와 Current 속성을 함께 사용합니다. 다음 내용을 C# 인터렉티브에서 순서대로 실행해 보세요.
1. 정수 데이터 3개를 반환하는 GetNumbers() 함수를 생성합니다.
> IEnumerable<int> GetNumbers() . { . yield return 1; . yield return 3; . yield return 5; . }
2. GetEnumerator() 메서드의 결괏값을 nums 변수에 담고 전체를 출력해 보면 데이터가 3개 표시됩니다.
> var nums = GetNumbers().GetEnumerator(); > nums GetNumbers { 1, 3, 5 }
3. MoveNext() 메서드를 호출하면 데이터를 하나씩 선택한 후 Current 속성으로 현재 값을 가져옵니다.
> nums.MoveNext(); > nums.Current 1