SortedList<TKey,TValue>.GetEnumerator Méthode

Définition

Retourne un énumérateur qui itère dans le SortedList<TKey,TValue>.

public:
 System::Collections::Generic::IEnumerator<System::Collections::Generic::KeyValuePair<TKey, TValue>> ^ GetEnumerator();
public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey,TValue>> GetEnumerator();
member this.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<'Key, 'Value>>
Public Function GetEnumerator () As IEnumerator(Of KeyValuePair(Of TKey, TValue))

Retours

IEnumerator<KeyValuePair<TKey,TValue>>

KeyValuePair<TKey,TValue> Type IEnumerator<T> pour le SortedList<TKey,TValue>.

Implémente

Remarques

L’instruction foreach du langage C# (For Each dans Visual Basic) masque la complexité des énumérateurs. Par conséquent, l’utilisation foreach est recommandée au lieu de manipuler directement l’énumérateur.

Les énumérateurs peuvent être utilisés pour lire les données de la collection, mais ils ne peuvent pas être utilisés pour modifier la collection sous-jacente.

Le dictionnaire est conservé dans un ordre trié à l’aide d’une arborescence interne. Chaque nouvel élément est positionné à la position de tri correcte et l’arborescence est ajustée pour maintenir l’ordre de tri chaque fois qu’un élément est supprimé. Lors de l’énumération, l’ordre de tri est conservé.

Initialement, l’énumérateur est positionné avant le premier élément de la collection. À cette position, Current n’est pas défini. Par conséquent, vous devez appeler MoveNext pour faire avancer l’énumérateur vers le premier élément de la collection avant de lire la valeur de Current.

Current retourne le même objet jusqu’à ce qu’il MoveNext soit appelé. MoveNext définit Current l’élément suivant.

Si MoveNext elle passe la fin de la collection, l’énumérateur est positionné après le dernier élément de la collection et MoveNext retourne false. Lorsque l’énumérateur se trouve à cette position, les appels suivants à MoveNext retourner false. Si le dernier appel à MoveNext renvoyer false, Current n’est pas défini. Vous ne pouvez pas définir Current à nouveau le premier élément de la collection . Vous devez créer une instance d’énumérateur à la place.

Un énumérateur reste valide tant que la collection reste inchangée. Si des modifications sont apportées à la collection, telles que l’ajout, la modification ou la suppression d’éléments, l’énumérateur est irrécupérablement invalidé et l’appel suivant à MoveNext ou Reset lève un InvalidOperationException.

L’énumérateur n’a pas d’accès exclusif à la collection ; par conséquent, l’énumération par le biais d’une collection n’est pas intrinsèquement une procédure thread-safe. Pour garantir la sécurité des threads pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération. Pour permettre à la collection d’accéder à plusieurs threads pour la lecture et l’écriture, vous devez implémenter votre propre synchronisation.

Les implémentations par défaut des regroupements ne System.Collections.Generic sont pas synchronisées.

Cette méthode est une opération O(1).

S’applique à

Voir aussi