C#でも使えるようなので調べてみました。
using System.Collections.Generic;
static IEnumerable<string> ItratorFunc(int times)
{
for(int i = 0; i < times; i++)
{
Console.WriteLine("yield");
yield return $"{i}";
}
}
foreach(var s in ItratorFunc(10))
{
Console.WriteLine(s);
}
yield 0 yield 1 yield 2 ~省略~ yield 9
各要素に対して実施したい共通部分をメソッドとして外に出すことで再利用をしながら、個別の要件はforeach側で処理することで様々なシュチュエーションで柔軟な対応が出来る構文だと思います。
コメント