Просто интересно, почему Enumerable.Range
реализует IDisposable
.
Я понимаю, почему IEnumerator<T>
требует, но IEnumerable<T>
этого не требует.
(Я обнаружил это, играя с моей реализацией.Memoise (), в которой есть выражение типа
if (enumerable is IDisposable)
((IDisposable)enumerable).Dispose();
в его методе «исходный код», на который я поставил точку останова из любопытства и который был запущен тестом.)