1. Как связаны IEnumerable и IEnumerator?
1 балл
У IEnumerable есть метод, возвращающий IEnumerator
У IEnumerator есть метод, возвращающий IEnumerable
Они никак не связаны
2. Почему классы коллекций реализуют интерфейс IEnumerable, не IEnumerator?
1 балл
Объективных причин нет. Так исторически сложилось
Из соображений оптимизации скорости выполнения кода
Чтобы можно было иметь несколько работающих параллельно итераторов по одной и той же коллекции
Без этого невозможно создавать вложенные циклы.
Изучите код:
foreach(var item in new MyClass()) Console.WriteLine(item);
3. Как нужно определить MyClass, чтобы этот код компилировался?
1 балл
Добавить в MyClass метод Items, возвращающий массив элементов
Реализовать в MyClass интерфейс IEnumerable
Добавить в MyClass метод GetItems, возвращающий IEnumerable
Добавить в MyClass метод MoveNext
4. Выберите верные утверждения об использовании IEnumerator в цикле foreach
1 балл
Если MoveNext возвращает false, значит следующего элемента нет
С помощью IEnumerator можно получать элементы коллекции
С помощью IEnumerator можно менять коллекцию
До первого вызова MoveNext свойство Current указывает на первый элемент коллекции
×
Практика, практика и еще раз практика!
Войдите
или
зарегистрируйтесь
, чтобы отвечать на тесты и решать задачи.