今までは、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が必要になるときがあるんです。