using System;
using System.Collections.Generic;
public class Test
{
static IEnumerator<string> Generate()
{
yield return "A";
yield return "B";
yield return "C";
}
public static void Main()
{
using (var iterator = Generate())
while (iterator.MoveNext())
{
Console.WriteLine(iterator.Current);
if (iterator.Current == "B")
{
while (iterator.MoveNext())
Console.WriteLine(" " + iterator.Current);
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXN0YXRpYyBJRW51bWVyYXRvcjxzdHJpbmc+IEdlbmVyYXRlKCkKCXsKCQl5aWVsZCByZXR1cm4gIkEiOwoJCXlpZWxkIHJldHVybiAiQiI7CgkJeWllbGQgcmV0dXJuICJDIjsKCX0KCglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdXNpbmcgKHZhciBpdGVyYXRvciA9IEdlbmVyYXRlKCkpCgkJd2hpbGUgKGl0ZXJhdG9yLk1vdmVOZXh0KCkpCgkJewoJCQlDb25zb2xlLldyaXRlTGluZShpdGVyYXRvci5DdXJyZW50KTsKCQkJaWYgKGl0ZXJhdG9yLkN1cnJlbnQgPT0gIkIiKQoJCQl7CiAgICAgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IuTW92ZU5leHQoKSkKCQkgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiICAgICIgKyBpdGVyYXRvci5DdXJyZW50KTsKCQkJfQoJCX0KCX0KfQ==