PersonalizationStateInfoCollection.GetEnumerator Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí standardní enumerátor schopný iterovat kolekci. Tuto metodu nelze dědit.
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
Enumerátor IEnumerator, který lze použít pro iteraci prostřednictvím kolekce
Implementuje
Poznámky
Enumerátory lze používat ke čtení dat v kolekci, nikoli však k úpravě zdrojové kolekce.
Zpočátku je enumerátor umístěn před prvním prvkem v kolekci. Metoda Reset také vrátí enumerátor zpět do této pozice. V této pozici Current není vlastnost definována. Proto je nutné volat metodu MoveNext pro přechod enumerátoru na první prvek kolekce před čtením hodnoty Current. Další informace o enumerátorech najdete v tématu IEnumerator.
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í prvků, je výčet nenávratně neplatný a jeho chování není definováno.
Příkaz foreach
jazyka C# (for each
v jazyce Visual Basic) skrývá složitost enumerátorů. Proto se doporučuje používat foreach
místo přímé manipulace s enumerátorem.
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. Abyste zajistili bezpečnost vláken během výčtu, můžete kolekci zamknout během celého výčtu. Chcete-li více vláknům umožnit přístup ke kolekci pro čtení a zápis, musíte implementovat svou vlastní synchronizaci.