LinkedList<T>.Enumerator Struct

Definizione

Enumera gli elementi di un oggetto LinkedList<T>.

public: value class LinkedList<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class LinkedList<T>::Enumerator : System::Collections::Generic::IEnumerator<T>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public struct LinkedList<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public struct LinkedList<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Serializable]
public struct LinkedList<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type LinkedList<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface IDisposable
type LinkedList<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface IDisposable
    interface IDeserializationCallback
    interface ISerializable
[<System.Serializable>]
type LinkedList<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IDisposable
    interface IEnumerator
    interface ISerializable
    interface IDeserializationCallback
[<System.Serializable>]
type LinkedList<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface ISerializable
    interface IDeserializationCallback
    interface IDisposable
Public Structure LinkedList(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure LinkedList(Of T).Enumerator
Implements IDeserializationCallback, IEnumerator(Of T), ISerializable

Parametri di tipo

T
Ereditarietà
LinkedList<T>.Enumerator
Attributi
Implementazioni

Commenti

L'istruzione foreach 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. In questa posizione, la proprietà Current è indefinita. 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.

La proprietà Current restituisce lo stesso oggetto finché non viene chiamato il metodo MoveNext. 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, le chiamate successive per MoveNext restituire falseanche . Se l'ultima chiamata a MoveNext restituita falseè Current non definita. Non è possibile impostare nuovamente la proprietà Current sul primo elemento della raccolta; è necessario creare una nuova istanza di enumeratore.

Un enumeratore rimane valido finché la raccolta rimane invariata. Se le modifiche vengono apportate all'insieme, 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 IEnumerator.Reset genera un InvalidOperationExceptionoggetto .

L'enumeratore non dispone di accesso esclusivo alla raccolta. L'enumerazione di una raccolta non è quindi una procedura 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 delle raccolte in System.Collections.Generic non vengono sincronizzate.

Proprietà

Current

Ottiene l'elemento in corrispondenza della posizione corrente dell'enumeratore.

Metodi

Dispose()

Rilascia tutte le risorse usate da LinkedList<T>.Enumerator.

MoveNext()

Sposta l'enumeratore all'elemento successivo dell'oggetto LinkedList<T>.

Implementazioni dell'interfaccia esplicita

IDeserializationCallback.OnDeserialization(Object)

Implementa l'interfaccia ISerializable e genera l'evento di deserializzazione quando la deserializzazione è completa.

IEnumerator.Current

Ottiene l'elemento in corrispondenza della posizione corrente dell'enumeratore.

IEnumerator.Reset()

Imposta l'enumeratore sulla propria posizione iniziale, ovvero prima del primo elemento nella raccolta. La classe non può essere ereditata.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Implementa l'interfaccia ISerializable e restituisce i dati necessari a serializzare l'istanza di LinkedList<T>.

Si applica a

Vedi anche