Sdílet prostřednictvím


ObjectKeyFrameCollection.GetEnumerator Metoda

Definice

Vrátí enumerátor, který může iterovat v rámci kolekce.

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

Návraty

Objekt IEnumerator , který může iterovat kolekcí.

Implementuje

Poznámky

Enumerátory umožňují pouze čtení dat v kolekci. Enumerátory nelze použít k úpravě podkladové kolekce.

Zpočátku je enumerátor umístěn před první položkou v kolekci. Reset také vrátí enumerátor zpět na tuto pozici. Na této pozici vyvolá volání Current výjimku. Proto je nutné před čtením hodnoty Currentvolat MoveNext k posunu enumerátoru na první položku kolekce.

Current vrátí stejný objekt, dokud není volána hodnota MoveNext nebo Reset . MoveNext nastaví Current na další položku.

Po předání konce kolekce je enumerátor umístěn za poslední položkou v kolekci a volání MoveNext vrátí false. Pokud se vrátilo falseposlední volání MoveNext , vyvolá volání Current výjimku. Pokud chcete znovu nastavit Current první položku kolekce, můžete volat Reset a potom 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í, úprava nebo odstranění položek, je enumerátor nenávratně zneplatněný a další volání MoveNext nebo Reset vyvolá InvalidOperationException. Pokud je kolekce změněna mezi MoveNext a Current, Current vrátí položku, na kterou je nastavena, a to i v případě, že je enumerátor již zneplatněný.

Enumerátor nemá výhradní přístup ke kolekci; proto výčet prostřednictvím kolekce není vnitřně procedurou bezpečnou pro přístup z více vláken. I v případě, že je kolekce synchronizována, mohou ostatní vlákna kolekci stále upravovat, což způsobí, že enumerátor vyvolá výjimku. K zaručení bezpečnosti přístupu z více vláken můžete buďto zamknout kolekci na celou dobu práce s výčtem, nebo zachycovat výjimky vzniklé v důsledku změn prováděných ostatními vlákny.

Platí pro