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