Я готовлюсь к своему С# EXAM. Я смущен ответом на этот вопрос:
Программа может использовать интерфейсы
IEnumerable
иIEnumerator
для выполнения следующих действий:а. Используйте MoveNext и Reset для перемещения по списку объектов.
б. Используйте foreach для перемещения по списку объектов.
с. Перемещение по списку объектов по индексу.
д. Используйте оператор yield return, чтобы составить список объектов для итерации.
Мой ответ был b). Но книга: MCSD Certification Toolkit говорит, что она a).
Может кто-нибудь сказать мне, почему? Я понимаю, что вы можете получить Enumerator
с помощью GetEnumerator()
, а затем вызвать методы MoveNext
и Reset
для перемещения по списку (и использовать Current
для доступа к текущему элементу, на который ссылается итератор). Но не реализует ли IEnumerable
и IEnumerator
причину использования объекта в цикле foreach
?