Condividi tramite


SortedSet<T>.Enumerator Struct

Definizione

Enumera gli elementi di un SortedSet<T> oggetto .

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

Parametri di tipo

T
Ereditarietà
SortedSet<T>.Enumerator
Attributi
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, la Current proprietà non è definita. Pertanto, è necessario chiamare il MoveNext metodo per far avanzare 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, le chiamate successive per MoveNext restituire falseanche . Se l'ultima chiamata a MoveNext restituisce false, Current non è definita. Non è possibile impostare Current di nuovo sul primo elemento della raccolta. È invece necessario creare un nuovo oggetto 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 la chiamata successiva a MoveNext o IEnumerator.Reset genera un'eccezione InvalidOperationException.

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.

Proprietà

Nome Descrizione
Current

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

Metodi

Nome Descrizione
Dispose()

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

MoveNext()

Sposta l'enumeratore all'elemento successivo della SortedSet<T> raccolta.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IDeserializationCallback.OnDeserialization(Object)

Implementa l'interfaccia ISerializable e genera l'evento di deserializzazione al termine della deserializzazione.

IEnumerator.Current

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

IEnumerator.Reset()

Imposta l'enumeratore sulla posizione iniziale, ovvero prima del primo elemento della raccolta.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Implementa l'interfaccia ISerializable e restituisce i dati necessari per serializzare l'istanza SortedSet<T> .

Si applica a