反復処理するときに、何かで支えてほしい!(イテレーター) - TejimaTuyoshi/returnread GitHub Wiki
これを使う上でIEnumeratorを使用しなければならないので注意。
では、IEnumeratorとはなんぞや?
IEnumerator は繰り返し処理をサポートするインターフェイスである。
いわゆる、for文を支えるものである。
これによって、「分割して実行する」ようにできる。
yield return null;までの動作を実行。//分割実行。
その後、もう一度動作させるとそのあとから実行される。(MoveNextがあると)
コルーチンに近しい。
ただし、これ自体が理解するのが難しいので(コルーチン)というラッピングで隠している。
MoveNextはコルーチンが出る前から出ていたものの、
最近は、コルーチンが主流なので注意。
using System.Collections = IEnumeratorなどが入っている。
ただし、もう一つある。
それが、IEnumerableだ。
foreach分の条件文における、「in」は、IEnumerable型が必要になる。
じゃあ型としてあるのは分かったけど、何なの?
簡単に言えば、「ToArray」とかの変換を無くすもの。
と考えた方が「楽」。
正直、「To」系は少ない方が良い。
Collection = 配列・List・Dictionary 等
yield return null; = Updateに処理を譲ってから動作するように。
引数の定義時、ListやArrayと言われると、「時間が・・・」
となるので、そこに「IEnumerable」を入れれば楽。