Hashtable.IEnumerable.GetEnumerator Méthode

Définition

Retourne un énumérateur qui itère dans une collection.

 virtual System::Collections::IEnumerator ^ System.Collections.IEnumerable.GetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator();
abstract member System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
override this.System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
Function GetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator

Retours

Qui IEnumerator peut être utilisé pour itérer dans la collection.

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.

Initialement, l’énumérateur est positionné avant le premier élément de la collection. Reset ramène également l’énumérateur à cette position. À cette position, l’appel Current lève une exception. 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.

Currentretourne le même objet jusqu’à ce que l’un ou MoveNext l’autre Reset 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 retournent MoveNext également false. Si le dernier appel à MoveNext renvoyer false, l’appel Current lève une exception. Pour définir Current à nouveau le premier élément de la collection, vous pouvez appeler Reset suivi de MoveNext.

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 peut être invalidé et l’appel suivant à MoveNext ou Reset lève un InvalidOperationException. Si la collection est modifiée entre MoveNext et Current, Current retourne l’élément sur lequel elle est définie, même si l’énumérateur est déjà invalidé.

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 intrinsèquement pas une procédure thread-safe. Même lorsqu’une collection est synchronisée, d’autres threads peuvent toujours modifier la collection, ce qui provoque la levée d’une exception par l’énumérateur. Pour garantir la sécurité des threads pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération ou intercepter les exceptions résultant des modifications apportées par d’autres threads.

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

S’applique à

Voir aussi