IEnumerable против IEnumerator: разница и сравнение

IEnumerable и IEnumerator — это интерфейсы, доступные в C#. Первый — это модуль, а второй — объект. 

IEnumerable создает IEnumerator. Здесь GetEnumerator используется для получения IEnumerator, поскольку каждый цикл используется для генерации кода, использующего Enumerator. Перечислитель отличается от IEnumerator, поскольку IEnumerator — это интерфейс. Перечислитель реализует это.

Основные выводы

  1. IEnumerable — это интерфейс, который позволяет выполнять итерацию по коллекции объектов, а IEnumerator — это класс, реализующий интерфейс IEnumerator и предоставляющий методы для обхода коллекции.
  2. IEnumerable предоставляет единственный метод (GetEnumerator), который возвращает объект IEnumerator, а IEnumerator предоставляет методы для перемещения по коллекции (MoveNext) и извлечения текущего объекта (Current).
  3. IEnumerable используется для создания коллекций, которые можно перебирать, а IEnumerator используется для обхода этих коллекций.

IEnumerable против IEnumerator

Разница между IEnumerable и IEnumerator заключается в том, что IEnumerable работает для универсального интерфейса, а IEnumerator работает для всех неуниверсальных интерфейсов. IEnumerable указывает на объект, который можно перечислить, но IEnumerator реализован с использованием каждого оператора для итерации. Интерфейс IEnumerable использует IEnumerator для итерации всех элементов, используемых для каждого оператора.

IEnumerable против IEnumerator

IEnumerable используется для поиска объекта, который используется в качестве интерфейса. Он используется для итерации всех элементов в коллекции.

Процесс итерации облегчает перемещение по коллекции. Он действует как объект. GetEnumerator — это метод, который используется для реализации интерфейса IEnumerator.

IEnumerator имеет два метода: Reset() и MoveNext(), а также расширенное свойство, известное как Current. MoveNext() — это метод, который создает логическое значение, указывающее на конечный элемент списка. Метод reset устанавливает перечислитель в положение по умолчанию.

Сравнительная таблица

Параметры сравненияIEnumerableIEnumerator
Тип интерфейсаОбщийНе общий
Количество методоводинДве
ReturnsIEnumeratorНичто
Состояние курсораНе может сохранитьМожет сохранить
ПродуктПеречисляемый объектДля каждого результата выписки
Способ письмаАбстрактныеБетон

Что такое IEnumerable?

Это интерфейс, реализуемый перечислимым классом. Вся коллекция в c# может реализовать интерфейс IEnumerable. Он возвращает IEnumerator. Он не меняется в зависимости от спецификаторов доступа, используемых в коде.

Читайте также:  Dispose vs Finalize: разница и сравнение

IEnumerable имеет метод, известный как GetEnumerator. Эта реализация выполняется только внутри класса.

Процесс итерации облегчает перемещение по коллекции. Он действует как объект. GetEnumerator — это метод, который используется для реализации интерфейса IEnumerator.

IEnumerable известен как универсальный интерфейс, поскольку код пишется очень компактным, поскольку требуется только однократная реализация. Это не вопрос сколько конструкторов используется в реализации кода для перебора всех элементов.

Код требует минимального обслуживания, так как модификация кода выполняется под одной платформой и не требует дополнительных изменений. Оно использует абстракция для итерации всех элементов в массиве.

Он использует итератор IEnumerator, который используется для итерации всех элементов. Поскольку это общий класс, он легко выполняет итерацию элементов в массиве. Он обеспечивает общий интерфейс. Он используется во всех необобщенных классах.

Что такое IEnumerator?

У него есть два метода для реализации итерации всех элементов в коллекции. Он имеет два метода: MoveNext и Reset. MoveNext — это метод, указывающий, что итерация не достигла последнего элемента коллекции.

 Метод сброса делает то же самое, что и звучит. Он указывает на повторный запуск итерации после того, как предыдущая итерация будет выполнена до последнего элемента массива.

Наконец, один объект — это Current, который дает текущий элемент в результате итерации. Он имеет определенный доступ к своим элементам. Он предоставляет доступ только для чтения ко всему массиву.

Читайте также:  Hotjar против Crazy Egg: разница и сравнение

IEnumerator вызывает текущее свойство, которое отвечает за возврат элемента в текущий используемый список. Он использует два метода и свойство для итерации объекта.

Каждый оператор использует список массивов, начинает итерацию, продвигаясь вперед, и использует один из методов. IEnumerator не может возвращать IEnumerable.

Он может легко вернуть текущее состояние курсора. IEnumerator использует конкретный способ записи. Он начинает итерацию в стек итерируя первый элемент стека и заканчивая последним элементом стека.

Основные различия между IEnumerable и IEnumerator

  1. IEnumerable используется для универсального интерфейса, а IEnumerator — для неуниверсального интерфейса.
  2. IEnumerable имеет только один метод, тогда как IEnumerator имеет только два метода.
  3. IEnumerable может возвращать IEnumerator, но IEnumerator не может возвращать IEnumerable.
  4. IEnumerable не может сохранить текущее состояние курсора, но IEnumerator может его сохранить.
  5. IEnumerable показывает перечисляемый объект, тогда как IEnumerator имеет по одному для каждого оператора.
  6. IEnumerable — это абстрактный способ записи, но IEnumerator использует конкретную запись.
Рекомендации
  1. https://ieeexplore.ieee.org/abstract/document/7883396/

Последнее обновление: 25 июня 2023 г.

точка 1
Один запрос?

Я приложил столько усилий, чтобы написать этот пост в блоге, чтобы предоставить вам ценность. Это будет очень полезно для меня, если вы подумаете о том, чтобы поделиться им в социальных сетях или со своими друзьями/родными. ДЕЛИТЬСЯ ♥️

22 мысли о «IEnumerable против IEnumerator: разница и сравнение»

  1. Благодарим вас за такое тщательное сравнение IEnumerable и IEnumerator. Он ясный и краткий, что позволяет легко понять различия между двумя интерфейсами.

    Ответить
  2. Этот пост является ценным ресурсом для понимания различий между IEnumerable и IEnumerator. Разбивка подробная и информативная, что облегчает понимание функциональности обоих интерфейсов.

    Ответить
  3. Спасибо за этот информативный пост. Объяснения IEnumerable и IEnumerator очень ясны и облегчают понимание различий между двумя интерфейсами.

    Ответить
  4. В этом посте представлено очень тщательное и содержательное сравнение IEnumerable и IEnumerator. Это отличный справочник для разработчиков, желающих понять различия между двумя интерфейсами.

    Ответить
  5. Это очень информативный пост о IEnumerable и IEnumerator. Сравнительная таблица позволяет легко понять ключевые различия между двумя интерфейсами.

    Ответить
  6. Разбивка IEnumerable и IEnumerator отличная — она всесторонне охватывает основные различия и помогает понять функциональность обоих интерфейсов.

    Ответить

Оставьте комментарий

Хотите сохранить эту статью на потом? Нажмите на сердечко в правом нижнем углу, чтобы сохранить в свой собственный блок статей!