MoveNextがあるのにEOFが無いとか設計したヤツはナニを考えているんだか‥‥
末尾でMoveNextした時に例外出せばまだいいんだけど、例外すら出さずにカーソル位置を維持、ってそれどうやって使えと言うのか。
結局、自前でEOFを使えるイテレータを書くハメですよ。
(普通、.NETのIEnumeratorってMoveNextの戻り値がfalseならEOFなんですが、アレはどう見てもMoveNextがSubで宣言されててやる気なし。しかも書かれているサンプルは、while分の中で使うと最後の行が処理されないという使いどころが無いアルゴリズム。while文の中で処理するなら、while trueにしといて直前のPositionとMoveNextした後のPositionを比較して値が同じならループ脱出、とか書くしかないという‥‥)