System::Collections::Generic::IEnumerator класс

IEnumerator class

Интерфейс перечислителя, который может использоваться для перебора некоторых элементов. Объекты этого класса должны создаваться только с помощью функции System::MakeObject(). Никогда не создавайте экземпляр этого типа в стеке или с помощью оператора new, так как это приведёт к ошибкам времени выполнения и/или сбоям утверждений. Всегда оборачивайте этот класс в указатель System::SmartPtr и используйте этот указатель для передачи его в функции в качестве аргумента.

template<typename T>class IEnumerator : public virtual System::IDisposable,
                                        public System::Details::EnumeratorBasedIterator<T>,
                                        protected System::Details::IteratorPointerUpdater<T, false>
ПараметрОписание
TТип элемента.

Методы

МетодОписание
AsVirtualizedIterator()Подготавливает итератор для использования классом VirtualizedIterator.
CloneIterator() const overrideКлонирует текущий итератор.
virtual Current() constПолучает текущий элемент.
virtual get_Current() constПолучает текущий элемент.
IEnumerator()
IncrementIterator() overrideПеремещает итератор на шаг вперёд.
InitializeIterator() overrideВыполняет первый вызов MoveNext() и подготавливает объект перечислителя для использования VirtualizedIterator.
MarkOwnedByVirtualizedIterator()Помечает перечислитель, принадлежащий виртуализированному итератору.
virtual MoveNext()Перемещает перечислитель к следующему элементу. Если ранее ни один элемент не был выбран, устанавливает ссылку на первый доступный элемент. Если достигнут конец контейнера, ничего не делает.
virtual Reset()Сбрасывает перечислитель в позицию перед первым элементом.
virtual ~IEnumerator()

Typedefs

Определение типаОписание
ValueTypeТип значения.

Примечания

#include <system/collections/list.h>
#include <system/smart_ptr.h>

using namespace System;
using namespace System::Collections::Generic;

int main()
{
  // Создайте экземпляр класса List.
  auto collection = MakeObject<List<int>>();

  // Заполните список.
  collection->Add(1);
  collection->Add(2);
  collection->Add(3);

  // Получите перечислитель списка.
  auto enumerator = collection->GetEnumerator();

  while (enumerator->MoveNext())
  {
    // Получите текущий элемент и выведите его.
    std::cout << enumerator->get_Current() << ' ';
  }

  // Сбросьте перечислитель.
  enumerator->Reset();

  return 0;
}
/*
This code example produces the following output:
1 2 3
*/

См. также