티스토리 뷰


// C# : Iterator

using System;
using System.Collections;
using System.Collections.Generic;

namespace Iteration
{
class Program
{
static void Main(string[] args)
{
Count myCount = new Count();

IEnumerator<string> genericEnumerator = myCount.GetEnumerator();

Console.WriteLine(genericEnumerator.MoveNext()); // True
Console.WriteLine(genericEnumerator.Current); // one

Console.WriteLine(genericEnumerator.MoveNext()); // True
Console.WriteLine(genericEnumerator.Current); // two

Console.WriteLine(genericEnumerator.MoveNext()); // True
Console.WriteLine(genericEnumerator.Current); // three

Console.WriteLine(genericEnumerator.MoveNext()); // False
Console.WriteLine(genericEnumerator.Current); // three

Console.WriteLine("---- End of 1st iteration ----");

IEnumerator objectiveEnumerator = myCount.GetEnumerator();

Console.WriteLine(objectiveEnumerator.MoveNext()); // True
Console.WriteLine(objectiveEnumerator.Current); // one

Console.WriteLine(objectiveEnumerator.MoveNext()); // True
Console.WriteLine(objectiveEnumerator.Current); // two

Console.WriteLine(objectiveEnumerator.MoveNext()); // True
Console.WriteLine(objectiveEnumerator.Current); // three

Console.WriteLine(objectiveEnumerator.MoveNext()); // False
Console.WriteLine(objectiveEnumerator.Current); // three

Console.WriteLine("---- End of 2nd iteration ----");
}
}

class Count : IEnumerable<string>
{
public IEnumerator<string> GetEnumerator()
{
yield return "one";
yield return "two";
yield return "three";
}

IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
}

/* Output
True
one
True
two
True
three
False
three
---- End of 1st iteration ----
True
one
True
two
True
three
False
three
---- End of 2nd iteration ----
*/


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함