ActivityCollection.IEnumerable<Activity>.GetEnumerator Metodo

Definizione

Restituisce un enumeratore che scorre l'insieme.

 virtual System::Collections::Generic::IEnumerator<System::Workflow::ComponentModel::Activity ^> ^ System.Collections.Generic.IEnumerable<System.Workflow.ComponentModel.Activity>.GetEnumerator() = System::Collections::Generic::IEnumerable<System::Workflow::ComponentModel::Activity ^>::GetEnumerator;
System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity> IEnumerable<Activity>.GetEnumerator();
abstract member System.Collections.Generic.IEnumerable<System.Workflow.ComponentModel.Activity>.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity>
override this.System.Collections.Generic.IEnumerable<System.Workflow.ComponentModel.Activity>.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity>
Function GetEnumerator () As IEnumerator(Of Activity) Implements IEnumerable(Of Activity).GetEnumerator

Valori restituiti

Oggetto IEnumerator<T> che può essere utilizzato per scorrere la raccolta.

Implementazioni

Commenti

L'istruzione foreach del linguaggio C# (For Each in Visual Basic) nasconde la complessità degli enumeratori. Pertanto, è consigliabile usare foreach anziché modificare direttamente l'enumeratore.

Gli enumeratori possono essere usati per leggere i dati nella raccolta, ma non possono essere usati per modificare la raccolta sottostante.

Inizialmente, l'enumeratore viene posizionato prima del primo elemento della raccolta. In questa posizione, Current non è definito. 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 . MoveNext imposta Current sull'elemento successivo.

Se MoveNext passa la fine della raccolta, l'enumeratore viene posizionato dopo l'ultimo elemento della raccolta e MoveNext restituisce false. Quando l'enumeratore si trova in questa posizione, anche le chiamate successive per MoveNext restituire false. Se l'ultima chiamata a MoveNext ha restituito false, Current non è definita. Non è possibile impostare Current nuovamente sul primo elemento della raccolta. È invece necessario creare una nuova istanza dell'enumeratore.

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 il relativo comportamento non è definito.

L'enumeratore non ha accesso esclusivo alla raccolta; pertanto, l'enumerazione tramite una raccolta non è intrinsecamente una procedura thread-safe. Per garantire la thread safety durante l'enumerazione, è possibile bloccare la raccolta durante l'intera enumerazione. Per consentire l'accesso alla raccolta da parte di più thread per la lettura e la scrittura, è necessario implementare la propria sincronizzazione.

Le implementazioni predefinite delle raccolte nello System.Collections.Generic spazio dei nomi non vengono sincronizzate.

Si applica a