MethodDataCollection.IEnumerable.GetEnumerator Metoda

Definice

IEnumerator Vrátí iteruje přes MethodDataCollection.

 virtual System::Collections::IEnumerator ^ System.Collections.IEnumerable.GetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator();
abstract member System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
override this.System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
Function GetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator

Návraty

A IEnumerator pro MethodDataCollection.

Implementuje

Poznámky

Příkaz foreach jazyka C# (for each v Visual Basic) skryje složitost výčtů. Proto se místo přímé manipulace s enumerátorem doporučuje použití foreach .

Enumerátory lze použít ke čtení dat v kolekci, ale nelze je použít k úpravě podkladové kolekce.

Na začátku je enumerátor umístěn před prvním prvkem v kolekci. Reset také vrátí enumerátor zpět do této pozice. Volání na této pozici Current vyvolá výjimku. Proto je nutné volat MoveNext , aby se enumerátor před čtením hodnoty Current.

Current vrátí stejný objekt, dokud se nevolá MoveNext nebo Reset nevolá. MoveNext nastaví Current na další prvek.

Pokud MoveNext předá konec kolekce, enumerátor je umístěn za posledním prvkem v kolekci a MoveNext vrátí .false Pokud je enumerátor na této pozici, následná volání vrátit MoveNext také false. Pokud se vrátí poslední volání MoveNextfalse, vyvolá volání Current výjimku. Chcete-li nastavit Current na první prvek kolekce znovu, můžete volat Reset následovaný MoveNext.

Enumerátor zůstane platný, dokud kolekce zůstane beze změny. Pokud jsou v kolekci provedeny změny, například přidání, úpravy nebo odstranění prvků, enumerátor je nenávratně neplatný a další volání MoveNext nebo Reset vyvolá výjimku InvalidOperationException. Pokud je kolekce změněna mezi MoveNext a Current, Current vrátí prvek, na který je nastaven, i když je enumerátor již neplatný.

Enumerátor nemá výhradní přístup k kolekci; proto výčet prostřednictvím kolekce není vnitřně bezpečný postup vlákna. I když je kolekce synchronizována, ostatní vlákna mohou stále upravovat kolekci, což způsobí, že enumerátor vyvolá výjimku. Chcete-li zaručit bezpečnost vláken během výčtu, můžete buď uzamknout kolekci během celého výčtu, nebo zachytit výjimky vyplývající z změn provedených jinými vlákny.

Tato metoda je operace O(1).

Platí pro