SortedDictionary<TKey,TValue>.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 SortedDictionary<TKey,TValue>.
public: value class SortedDictionary<TKey, TValue>::Enumerator : System::Collections::Generic::IEnumerator<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::IDictionaryEnumerator
public struct SortedDictionary<TKey,TValue>.Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IEnumerator
interface IDisposable
interface IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDisposable
interface IDictionaryEnumerator
interface IEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDisposable
interface IEnumerator
interface IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDictionaryEnumerator
interface IEnumerator
interface IDisposable
Public Structure SortedDictionary(Of TKey, TValue).Enumerator
Implements IDictionaryEnumerator, IEnumerator(Of KeyValuePair(Of TKey, TValue))
Parametri di tipo
- TKey
- TValue
- Ereditarietà
- 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, Current non è definito. È necessario chiamare il MoveNext metodo per far avanzare l'enumeratore al primo elemento della raccolta prima di leggere il valore di Current.
La Current proprietà 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 nuovamente sul primo elemento della raccolta. È invece necessario creare una nuova istanza dell'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 SortedDictionary<TKey,TValue>.Enumerator. |
| MoveNext() |
Sposta l'enumeratore all'elemento successivo dell'oggetto SortedDictionary<TKey,TValue>. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IDictionaryEnumerator.Entry |
Ottiene l'elemento in corrispondenza della posizione corrente dell'enumeratore come DictionaryEntry struttura. |
| IDictionaryEnumerator.Key |
Ottiene la chiave dell'elemento nella posizione corrente dell'enumeratore. |
| IDictionaryEnumerator.Value |
Ottiene il valore dell'elemento nella posizione corrente dell'enumeratore. |
| 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. |