Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Hashtable.IEnumerable.GetEnumerator ()

 

Data di pubblicazione: ottobre 2016

Restituisce un enumeratore che consente di eseguire l'iterazione di una raccolta.

Spazio dei nomi:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

IEnumerator IEnumerable.GetEnumerator()

Valore restituito

Type: System.Collections.IEnumerator

Oggetto IEnumerator che può essere usato per eseguire l'iterazione della raccolta.

[Visual Basic, c#]

L'istruzione foreach del linguaggio C# (for each in Visual Basic) nasconde la complessità degli enumeratori. Pertanto, si consiglia l'utilizzo di foreach, anziché la modifica diretta dell'enumeratore.

È possibile utilizzare enumeratori per leggere i dati nella raccolta, ma non per modificare la raccolta sottostante.

Inizialmente l'enumeratore è posizionato davanti al primo elemento della raccolta. Anche il metodo Reset riporta l'enumeratore in questa posizione. In questa posizione, la chiamata Current genera un'eccezione. Pertanto, è necessario chiamare il metodo MoveNext per spostare in avanti l'enumeratore, in corrispondenza del primo elemento della raccolta, prima di leggere il valore di Current.

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

Se MoveNext raggiunge la fine della raccolta, l'enumeratore è posizionato dopo l'ultimo elemento nella raccolta e MoveNext restituisce false. Quando l'enumeratore si trova in questa posizione, le chiamate successive a MoveNext restituiscono false. Se l'ultima chiamata a MoveNext restituito false, la chiamata Current genera un'eccezione. Per impostare nuovamente la proprietà Current sul primo elemento della raccolta, è possibile chiamare il metodo Reset seguito da MoveNext.

Un enumeratore rimane valido fino a quando la raccolta non subisce modifiche. Se vengono apportate modifiche alla raccolta, ad esempio l'aggiunta, modifica, o l'eliminazione di elementi, l'enumeratore può essere invalidato e la successiva chiamata a MoveNext o Reset Genera un InvalidOperationException. Se la raccolta viene modificata tra MoveNext e Current, Current restituisce l'elemento su cui è stata impostata, anche se l'enumeratore risulta già invalidato.

L'enumeratore non dispone di accesso esclusivo alla raccolta, pertanto il processo di enumerazione di una raccolta non è di per sé thread-safe. Anche se una raccolta è sincronizzata, è possibile che venga modificata da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore. Per garantire la protezione dei thread durante l'enumerazione, è possibile bloccare la raccolta per l'intera enumerazione oppure intercettare le eccezioni determinate dalle modifiche apportate da altri thread.

Questo metodo è un'operazione o (1).

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: