反復処理するときに、何かで支えてほしい!(イテレーター) - 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」を入れれば楽。