SortedSet<T>.Enumerator Struct
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Enumera gli elementi di un oggetto SortedSet<T>.
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à
- 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 Current proprietà non è definita. È pertanto necessario chiamare il metodo per avanzare l'enumeratore MoveNext al 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 false
anche . Se l'ultima chiamata a MoveNext restituita false
è Current non definita. Non è possibile impostare Current di nuovo sul primo elemento della raccolta. È necessario creare invece un nuovo oggetto 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 ha accesso esclusivo alla raccolta; pertanto, l'enumerazione tramite una raccolta non è intrinsecamente 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 di raccolte nello spazio dei nomi System.Collections.Generic non sono sincronizzate.
Proprietà
Current |
Ottiene l'elemento in corrispondenza della posizione corrente dell'enumeratore. |
Metodi
Dispose() |
Rilascia tutte le risorse usate da SortedSet<T>.Enumerator. |
MoveNext() |
Sposta l'enumeratore all'elemento successivo della raccolta SortedSet<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. |
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Implementa l'interfaccia ISerializable e restituisce i dati necessari a serializzare l'istanza di SortedSet<T>. |