System::Collections::Generic::IEnumerator class

IEnumerator class

Gränssnitt för enumerator som kan användas för att iterera genom vissa element. Objekt av denna klass bör endast allokeras med System::MakeObject() funktionen. Skapa aldrig en instans av denna typ på stacken eller med operatorn new, eftersom det kommer att leda till körfel och/eller påståendefel. Omslut alltid denna klass i en System::SmartPtr pekare och använd denna pekare för att skicka den till funktioner som argument.

template<typename T>class IEnumerator : public virtual System::IDisposable,
                                        public System::Details::EnumeratorBasedIterator<T>,
                                        protected System::Details::IteratorPointerUpdater<T, false>
ParameterBeskrivning
TElementtyp.

Metoder

MetodBeskrivning
AsVirtualizedIterator()Förbereder iteratorn för att användas av VirtualizedIterator-klassen.
CloneIterator() const overrideKlonar aktuell iterator.
virtual Current() constHämtar aktuellt element.
virtual get_Current() constHämtar aktuellt element.
IEnumerator()
IncrementIterator() overrideFlyttar iteratorn ett steg framåt.
InitializeIterator() overrideUtför det första MoveNext()‑anropet och förbereder enumeratorobjektet för att användas av VirtualizedIterator.
MarkOwnedByVirtualizedIterator()Markerar enumeratorn som ägs av den virtualiserade iteratorn.
virtual MoveNext()Flyttar enumerator till nästa element. Om inget element har refererats tidigare, sätts referensen till det första tillgängliga elementet. Om behållarens slut har nåtts, görs inget.
virtual Reset()Återställer enumeratorn till positionen före det första elementet.
virtual ~IEnumerator()

Typedefs

TypedefBeskrivning
ValueTypeVärdetyp.

Anmärkningar

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

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

int main()
{
  // Skapa en instans av List-klassen.
  auto collection = MakeObject<List<int>>();

  // Fyll listan.
  collection->Add(1);
  collection->Add(2);
  collection->Add(3);

  // Hämta enumeratorn för listan.
  auto enumerator = collection->GetEnumerator();

  while (enumerator->MoveNext())
  {
    // Hämta det aktuella elementet och skriv ut det.
    std::cout << enumerator->get_Current() << ' ';
  }

  // Återställ enumeratorn.
  enumerator->Reset();

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

Se även