IEnumerator<Т> и IEnumerable - в чем разница и как использовать? - C#
Формулировка задачи:
Помогите, пожалуйста, разобраться с IEnumerator<Т> и IEnumerable<T>. В чем разница использования этих интерфейсов? Вернее, как их использовать? Спасибо
Решение задачи: «IEnumerator<Т> и IEnumerable - в чем разница и как использовать?»
textual
Листинг программы
class RandomCollection : IEnumerable<int> { public IEnumerator<int> GetEnumerator() { // Возвращаем новый экземпляр класса, реализующего IEnumerator return new RandomEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } // Закрытый класс, реализующий доступ к отдельным элементам коллекции class RandomEnumerator : IEnumerator<int> { private Random rand = new Random(); // Член интерфейса IEnumerator<T>, возвращает текущий элемент коллекции public int Current { get { return rand.Next(); } } public void Dispose() { } // Член интерфейса IEnumerator object IEnumerator.Current { get { return Current; } } // Член интерфейса IEnumerator, переходит к следующему элементу, если таковой имеется public bool MoveNext() { // Будем генерировать бесконечный цикл случайных чисел. return true; } // Член интерфейса IEnumerator, сбрасывает итератор на начало коллекции public void Reset() { // У нас нет начала и конца. } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д