더북(TheBook)

이터레이터를 사용하여 배열 값을 foreach 문으로 출력하기

반복기(이터레이터)를 사용하여 특정 개체의 데이터를 foreach 문으로 편리하게 출력해 보겠습니다.

> using System.Collections;
> public class Language
. {
.     private string[] languages;        //① 필드
.
.     public Language(int length)        //② 생성자
.     {
.         languages = new string[length];
.     }
.
.     public string this[int index]      //③ 인덱서
.     {
.         get { return languages[index]; }
.         set { languages[index] = value; }
.     }
.
.     public IEnumerator GetEnumerator() //④ 반복기(이터레이터)
.     {
.         for (int i = 0; i < languages.Length; i++)
.         {
.             yield return languages[i];
.         }
.     }
. }
>
> var language = new Language(2); //ⓐ 클래스의 인스턴스 생성
> language[0] = "C#";             //ⓑ 정수 형식의 인덱서로 문자열 값 저장
> language[1] = "TypeScript";
> foreach (var lang in language)  //ⓒ foreach 문을 사용하여 배열 값 출력
. {
.     Console.WriteLine(lang);
. }
C#
TypeScript

처럼 System.Collections 네임스페이스의 IEnumerator 인터페이스로 GetEnumerator() 메서드를 구현하면 처럼 해당 클래스의 인스턴스를 foreach 문으로 접근하여 반복해서 사용할 수 있기 때문에 편리합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.