今までは、C#でGetEnumerator()を使うときって、
var enumerator = list.GetEnumerator();
while (enumerator.MoveNext()) {
var obj = enumerator.Current;
...
}
て書いてたけど、GetEnumerator()の戻り値であるIEnumerator<T>は、IDisposableを実装してるから、本来は、
using (var enumerator = list.GetEnumerator()) {
while (enumerator.MoveNext()) {
var obj = enumerator.Current;
...
}
}
て usingを書かなくちゃいけないんですね。
今までほとんど意識してませんでした。
えっ、foreach使えばGetEnumeratorは使わないって?
でも、ときどき、GetEnumeratorが必要になるときがあるんです。