C#/수업 내용

반복기

hyunjin-dev-log 2021. 12. 24. 22:39
using System;
using System.Collections.Generic;

namespace HelloWorld
{
    class App
    {
        //생성자
        public App()
        {
            //                시퀀스를 갖고있는 반복기 개체
            foreach(int num in GetSingleDigitNumbers())
            {
                Console.Write("{0} ", num);
            }

            Console.WriteLine();

            //컬렉션 초기화, 개체 이니셜라이저사용
            List<int> list = new List<int> { 1, 2, 3, 4, 5 };

            //foreach문은 간단히 읽고싶을때 사용 
            //foreach (int n in list)
            //{
            //    Console.Write("{0} ", n);
            //}

            //시퀀스 요소를 직접 컨트롤 하고싶으면 사용 
            IEnumerator<int> enumerator = list.GetEnumerator();
            while (enumerator.MoveNext())
            {
                Console.WriteLine(enumerator.Current);
            }

        }

        //반복기 메서드 정의
        IEnumerable<int> GetSingleDigitNumbers()
        {
            //반환타입은 IEnumerable<type>
            yield return 0;
            yield return 1;
            yield return 2;
            yield return 3;
            yield return 4;

            for (int i = 0; i < 5; i++)
            {
                yield return i + 5;
            }

        }
    }
}