Как стать автором
Обновить

Комментарии 10

Классная статья, спасибо за перевод!
В частности, содержание IEnumerable должно помещаться в памяти, в то время как в data science часто приходится иметь дело с наборами данных, которые слишком велики для памяти. Выяснилось, что система типов .NET не могла позволить выполнять некоторые действия, которые разработчики хотели выполнять внутри этих структур данных.
Что!? Но ведь этот интерфейс для того и придуман что бы не выделять всю память. Выходит Микрософт врала шарпистам всё это время!?

Какое отношение ienumerable имеет к памяти?

IEnumerable для того и нужен что бы не всю коллекцию тянуть в RAM.
Это откуда такая интерпретация? IEnumerable значит, что мы может перебрать элементы, но где фактически происходит перебор элементов — в памяти или ещё где, по интерфейсу IEnumerable мы утверждать не можем.

Цитата с официальной документации
Exposes an enumerator, which supports a simple iteration over a non-generic collection.
Это понятно.
Зачем метод IEnumerable.GetEnumerator()? Как работает yield?
Например стандартными средствами можно читать файл построчно, а не загружать все строки с файла в ОЗУ.

У IEnumerable нет требования:
содержание IEnumerable должно помещаться в памяти

Я может чего не понимаю, так вы объясните.
Вы наделяете IEnumerable какими то свойствами, которыми он не обладает

У IEnumerable нет требования:
содержание IEnumerable должно помещаться в памяти


Нет, я и не говорил что есть.

Зачем метод IEnumerable.GetEnumerator()? Как работает yield?
Например стандартными средствами можно читать файл построчно, а не загружать все строки с файла в ОЗУ.


И это всё ещё никак не говорит, что IEnumerable нужен
что бы не выделять всю память
Хорошо. Но IEnumerable при должной реализации энумератора позволяет не загружать всю коллекцию в память. Тогда что в статье означает:
содержание IEnumerable должно помещаться в памяти
?
Отличный мануал для начинающих! Буду признателен, если опубликуете еще материалы подобного характера.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий