Интерфейсы lEnumerable и lEnumerator: поддержка итерации по коллекциям

когда вы реализуете i b

Реализуйте интерфейс LEnumerable, Чтобы предоставить потребителям вашей коллекции возможность различными способами проходить по всем ее объектам. Когда вы реализуете LEnumerable, Необходимо также по меньшей мере в одном классе реализовать LEnumerator И возвращать экземпляр этого класса из метода LEnumerable.GetEnumerator. Реализация LEnumerator Предоставляет методы и свойства, позволяющие осуществлять итерацию по объектам коллекции. Можно предусмотреть несколько реализаций LEnumerator, Чтобы обеспечить различные способы итерации по коллекции.

Потребность в итерации по коллекциям объектов далеко выходит за рамки привязки данных. В старых языках и технологиях программирования характер поддержки, предоставляемой для итерации, и действительный способ ее осуществления вовсе не были согласованы. Архитекторы. NET Framework позаботились о таком согласовании, специфицировав для итерации модель и реализацию, которые должны поддерживаться всеми коллекциями в. NET, вне зависимости от языка. Кроме того, в большинство языков. NET введена прямая поддержка для итерации, основанная на этой модели, поэтому вам редко придется непосредственно иметь дело с интерфейсами LEnumerable И LEnumerator, Хотя именно они и приводят в действие скрытые механизмы итерации. Итак, в основе модели итерации лежат два интерфейса: LEnumerable И LEnumerator. В типе коллекции должен быть реализован интерфейс LEnumerable, Показывающий, что коллекция поддерживает итерацию по содержащимся в ней объектам.

Интерфейс LEnumerable Содержит всего один метод, который этот тип должен реализовывать: