이터레이터를 사용하여 배열 값을 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 문으로 접근하여 반복해서 사용할 수 있기 때문에 편리합니다.