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