Sdílet prostřednictvím


DoubleCollection.GetEnumerator Metoda

Definice

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

public:
 System::Windows::Media::DoubleCollection::Enumerator GetEnumerator();
public System.Windows.Media.DoubleCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Windows.Media.DoubleCollection.Enumerator
Public Function GetEnumerator () As DoubleCollection.Enumerator

Návraty

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

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. 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

Viz také