【C#】IEnumerable
IEnumerableインタフェース
IEnumeratorインタフェースを返す抽象メソッドGetEnumerator()を持つ。
IEnumeratorインタフェース
以下の関数とプロパティを持つ。
bool MoveNext() | イテレータを次に進ませる |
void Reset() | イテレータを初期位置に戻す |
void Dispose() | アンマネージリソースの解放 |
object Current | 現在のイテレータ |
代表的な反復処理:foreach文
foreach (T 変数 in コレクション)
{
処理;
}
上記は糖衣構文で、コンパイラによって以下のように展開される。
try
{
IEnumerator e = array.GetEnumerator();
while(e.MoveNext()){
T 変数名 = (T)e.Current;
処理;
}
}
finally
{
Dispose処理;
}