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()
        {
            // У нас нет начала и конца.
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5