첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ IEnumerator 인터페이스 사용하기 예제

----------------------------------------------------------------------------------------------------

using System;

 

string[] array = { "김철수", "홍길동", "김영수", "박철수" };

 

TestEnumerator testEnumerator = new TestEnumerator(array);

 

while(testEnumerator.MoveNext())

{

    string name = (string)testEnumerator.Current;

 

    Console.WriteLine(name);

}

----------------------------------------------------------------------------------------------------

 

■ IEnumerator 인터페이스 사용하기

----------------------------------------------------------------------------------------------------

using System.Collections;

 

/// <summary>

/// 테스트 열거자

/// </summary>

public class TestEnumerator : IEnumerator

{

    //////////////////////////////////////////////////////////////////////////////////////////////////// Field

    ////////////////////////////////////////////////////////////////////////////////////////// Private

 

    #region Field

 

    /// <summary>

    /// 문자열 배열

    /// </summary>

    private string[] stringArray;

 

    /// <summary>

    /// 위치

    /// </summary>

    private int position = -1;

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Property

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    // IEnumerator

    #region 현재 항목 - Current

 

    /// <summary>

    /// 현재 항목

    /// </summary>

    public object Current

    {

        get

        {

            return this.stringArray[this.position];

        }

    }

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 생성자 - TestEnumerator(stringArray)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="stringArray">문자열 배열</param>

    public TestEnumerator(string[] stringArray)

    {

        this.stringArray = new string[stringArray.Length];

 

        for(int i = 0; i < stringArray.Length; i++)

        {

            this.stringArray[i] = stringArray[i];

        }

    }

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Method

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    // IEnumerator

    #region 다음 항목으로 이동하기 - MoveNext()

 

    /// <summary>

    /// 다음 항목으로 이동하기

    /// </summary>

    /// <returns>처리 결과</returns>

    public bool MoveNext()

    {

        if(this.position < this.stringArray.Length - 1)

        {

            this.position++;

 

            return true;

        }

        else

        {

            return false;

        }

    }

 

    #endregion

 

    // IEnumerator

    #region 리셋하기 - Reset()

 

    /// <summary>

    /// 리셋하기

    /// </summary>

    public void Reset()

    {

        this.position = -1;

    }

 

    #endregion

}

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요