PersonalizationStateInfoCollection.GetEnumerator Metoda

Definicja

Zwraca standardowy moduł wyliczający, który może iterować w kolekcji. Nie można dziedziczyć tej metody.

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

Zwraca

Obiekt IEnumerator, który może być używany do iterowania po kolekcji.

Implementuje

Uwagi

Moduły wyliczające mogą służyć do odczytu danych w kolekcji, ale nie można za ich pomocą modyfikować kolekcji źródłowej.

Początkowo moduł wyliczający jest umieszczony przed pierwszym elementem w kolekcji. Metoda Reset powoduje również powrót modułu wyliczającego do tej pozycji. Na tym stanowisku Current właściwość jest niezdefiniowana. W związku z tym należy wywołać metodę MoveNext , aby przejść do pierwszego elementu kolekcji przed odczytaniem wartości Current. Aby uzyskać więcej informacji na temat modułów wyliczania, zobacz IEnumerator.

Moduł wyliczający zachowuje ważność tak długo, jak długo kolekcja pozostaje niezmieniona. Jeśli w kolekcji zostaną wprowadzone zmiany, takie jak dodanie, zmodyfikowanie czy usunięcie elementów, moduł wyliczający jest nieodwracalnie unieważniany, a jego zachowanie staje się niezdefiniowane.

Instrukcja foreach języka C# (for each w Visual Basic) ukrywa złożoność modułów wyliczania. W związku z tym użycie foreach jest zalecane, zamiast bezpośrednio manipulować modułem wyliczającym.

Moduł wyliczający nie ma wyłącznego dostępu do kolekcji, w związku z tym wyliczanie w kolekcji nie jest wewnętrznie procedurą odporną na wielowątkowość. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, można zablokować kolekcję podczas całego procesu wyliczania. Aby zezwolić wielu wątkom na dostęp do kolekcji w celu odczytu i zapisu danych, należy zaimplementować własny mechanizm synchronizacji.

Dotyczy