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 Dictionary<TKey, TValue>.IEnumerable.GetEnumerator ()

 

Data di pubblicazione: ottobre 2016

Restituisce un enumeratore che consente di scorrere la raccolta.

Spazio dei nomi:   System.Collections.Generic
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.

Ai fini dell'enumerazione, ogni elemento è un KeyValuePair<TKey, TValue> struttura che rappresenta un valore e la relativa chiave.

Il foreach istruzione del linguaggio c# (for each in 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. Il Reset metodo riporta l'enumeratore in questa posizione. In questa posizione, la Current proprietà non è definita. Pertanto, è necessario chiamare il MoveNext metodo per spostare l'enumeratore al primo elemento della raccolta prima di leggere il valore di Current.

System_CAPS_noteNota

Per prestazioni ottimali, l'enumeratore restituito da questa proprietà non genera un'eccezione se è posizionato prima del primo elemento o dopo l'ultimo elemento e il Current si accede alla proprietà; il valore della Current proprietà non è definita.

Il Current proprietà restituisce lo stesso elemento finché il MoveNext o Reset viene chiamato il metodo. 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, Current è definito. 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. In caso di modifiche alla raccolta, ad esempio aggiunta, modifica o eliminazione di elementi, l'enumeratore sarà reso non valido in modo irreversibile e il comportamento corrispondente non sarà definito.

L'enumeratore non dispone di accesso esclusivo alla raccolta, pertanto il processo di enumerazione di una raccolta non è di per sé thread-safe. Per assicurare la protezione del thread durante l'enumerazione, è possibile bloccare la raccolta durante l'intera enumerazione. Per consentire l'accesso alla raccolta in lettura e scrittura da parte di più thread, è necessario implementare la propria sincronizzazione.

Le implementazioni predefinite di raccolte nello spazio dei nomi System.Collections.Generic non sono sincronizzate.

Questo metodo è un'operazione o (1).

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: