DoubleCollection.GetEnumerator Metodo

Definizione

Restituisce un enumeratore in grado di scorrere l'insieme.

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

Valori restituiti

Oggetto DoubleCollection.Enumerator in grado di scorrere la raccolta.

Commenti

Gli enumeratori consentono solo la lettura dei dati nella raccolta. Non è possibile utilizzare enumeratori per modificare la raccolta sottostante.

Inizialmente, l'enumeratore viene posizionato prima del primo elemento della raccolta. In questa posizione, la chiamata Current genera un'eccezione. Pertanto, è necessario chiamare per far avanzare MoveNext l'enumeratore al primo elemento della raccolta prima di leggere il valore di Current.

Current restituisce lo stesso oggetto finché non MoveNext viene chiamato o Reset . MoveNext imposta Current sull'elemento successivo.

Dopo aver passato la fine della raccolta, l'enumeratore viene posizionato dopo l'ultimo elemento dell'insieme e la chiamata MoveNext restituisce false. Se l'ultima chiamata a MoveNext restituisce false, la chiamata Current genera un'eccezione. Per impostare Current nuovamente il primo elemento della raccolta, è possibile chiamare Reset seguito da MoveNext.

Un enumeratore rimane valido finché la raccolta rimane invariata. Se vengono apportate modifiche alla raccolta, ad esempio l'aggiunta, la modifica o l'eliminazione di elementi, l'enumeratore viene invalidato in modo irreversibile e la chiamata successiva a MoveNext o Reset genera un'eccezione InvalidOperationException. Se la raccolta viene modificata tra MoveNext e Current, Current restituirà l'elemento su cui è impostato, anche se l'enumeratore è già invalidato.

L'enumeratore non ha accesso esclusivo alla raccolta; pertanto, l'enumerazione tramite una raccolta non è intrinsecamente una procedura thread-safe. Anche quando una raccolta viene sincronizzata, altri thread potrebbero comunque modificare la raccolta, causando la generazione di un'eccezione da parte dell'enumeratore. Per garantire la thread safety durante l'enumerazione, è possibile bloccare la raccolta durante l'intera enumerazione o intercettare le eccezioni risultanti dalle modifiche apportate da altri thread.

Si applica a

Vedi anche