Поскольку мы не можем знать, что такое реализация, единственный надежный ответ - «да».
Однако, очень редко можно использовать IEnumerator
напрямую - foreach
чаще. Для универсального IEnumerator<T>
вы можете использовать оператор using:
using(var iter = obj.GetEnumerator()) {
...
}
Даже без универсальной версии вы можете обмануть:
IEnumerator iter = obj.GetEnumerator();
using(iter as IDisposable) {
...
}
Который избавится от iter, если его можно идентифицировать