티스토리 뷰


// 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/02   »
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
글 보관함