티스토리 뷰
// 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 ----
*/
'Series' 카테고리의 다른 글
Iterator [C#] List<string> weekDays - foreach, while, Reset (0) | 2018.06.15 |
---|---|
Iterator [C#] class DaysOfTheWeek : IEnumerable - yield return (0) | 2018.06.15 |
Iterator [C#] class Count : IEnumerable<string> - foreach (0) | 2018.06.15 |
Iterator [C#] class Count : IEnumerable - GetEnumerator (0) | 2018.06.15 |
Iterator [C#] class Count : IEnumerable - foreach (0) | 2018.06.15 |