Questo argomento non è stato ancora valutato - Valuta questo argomento

Metodo IEnumerable.GetEnumerator

Nota: questo metodo è stato introdotto con .NET Framework versione 2.0.

Restituisce un enumeratore che consente di scorrere l'insieme.

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

IEnumerator<T> GetEnumerator ()
IEnumerator<T> GetEnumerator ()
function GetEnumerator () : IEnumerator<T>

Valore restituito

Interfaccia IEnumerator che può essere utilizzata per scorrere l'insieme.

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

È possibile utilizzare enumeratori per leggere i dati nell'insieme, ma non per modificare l'insieme sottostante.

Inizialmente, l'enumeratore è posizionato prima del primo elemento nell'insieme. In questa posizione, la proprietà Current è indefinita. Pertanto, è necessario chiamare il metodo MoveNext per spostare in avanti l'enumeratore, in corrispondenza del primo elemento dell'insieme, prima di leggere il valore di Current.

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

Se il metodo MoveNext raggiunge la fine dell'insieme, l'enumeratore viene posizionato dopo l'ultimo elemento nell'insieme e MoveNext restituisce false. Quando l'enumeratore si trova in questa posizione, anche le successive chiamate al metodo MoveNext restituiscono false. Se l'ultima chiamata al metodo MoveNext ha restituito false, la proprietà Current è indefinita. Non è possibile impostare nuovamente la proprietà Current sul primo elemento dell'insieme; è necessario creare una nuova istanza di enumeratore.

Un enumeratore rimane valido fino a quando l'insieme rimane invariato. Se vengono apportate modifiche all'insieme, ad esempio l'aggiunta, la modifica o l'eliminazione di elementi, l'enumeratore verrà irrimediabilmente invalidato e il relativo comportamento sarà non definito.

L'enumeratore non dispone di accesso esclusivo all'insieme, pertanto il processo di enumerazione di un insieme non è di per sè thread-safe. Per garantire che l'enumerazione sia thread-safe, è possibile bloccare l'insieme durante l'intera enumerazione. Per consentire l'accesso all'insieme in lettura e scrittura da parte di più thread, è necessario implementare una sincronizzazione personalizzata.

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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0

.NET Compact Framework

Supportato in: 2.0
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.