Cette documentation est archivée et n’est pas conservée.

Dictionary<TKey, TValue>.IEnumerable.GetEnumerator, méthode

Mise à jour : November 2007

Retourne un énumérateur qui parcourt la collection.

Espace de noms :  System.Collections.Generic
Assembly :  mscorlib (dans mscorlib.dll)

IEnumerator IEnumerable.GetEnumerator()
J# prend en charge l'utilisation d'implémentations d'interface explicite mais pas la déclaration de nouvelles implémentations d'interface explicite.
JScript ne prend pas en charge les implémentations d'interfaces explicites.

Valeur de retour

Type : System.Collections.IEnumerator
IEnumerator qui peut être utilisé pour parcourir la collection.

Implémentations

IEnumerable.GetEnumerator()

À des fins d'énumération, chaque élément est une structure KeyValuePair<TKey, TValue> qui représente une valeur et sa clé.

L'instruction foreach du langage C# (for each en C++, For Each en Visual Basic) cache la complexité des énumérateurs. Il est donc recommandé d'utiliser foreach plutôt que de manipuler directement l'énumérateur.

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

L'énumérateur est initialement positionné avant le premier élément de la collection. La méthode Reset ramène aussi l'énumérateur à cette position. À cette position, la propriété Current n'est pas définie. Par conséquent, vous devez appeler la méthode MoveNext pour avancer l'énumérateur au premier élément de la collection avant la lecture de la valeur de Current.

Bb348449.alert_note(fr-fr,VS.90).gifRemarque :

Pour obtenir de meilleures performances, l'énumérateur retourné par cette propriété ne lève pas d'exception s'il est positionné avant le premier élément ou après le dernier élément et la propriété Current fait l'objet d'un accès ; la valeur de la propriété Current est non définie.

La propriété Current retourne le même élément jusqu'à ce que la méthode MoveNext ou la méthode Reset est appelée. MoveNext affecte l'élément suivant à Current.

Si MoveNext passe la fin de la collection, l'énumérateur est placé 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 retournent également false. Si le dernier appel à MoveNext a retourné false, Current n'est pas défini. Pour affecter à nouveau le premier élément de la collection comme valeur de Current, vous pouvez appeler Reset, puis MoveNext.

Un énumérateur reste valide tant que la collection demeure 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 devient irrévocablement non valide et son comportement n'est pas défini.

L'énumérateur ne dispose pas d'un accès exclusif à la collection. Par conséquent, l'énumération d'une collection n'est intrinsèquement pas une procédure thread-safe. Pour garantir la sécurité des threads pendant l'énumération, vous pouvez verrouiller la collection pendant toute la durée de cette opération. Pour permettre à plusieurs threads d'accéder en lecture et en écriture à la collection, vous devez implémenter votre propre synchronisation.

Les implémentations par défaut de collections dans l'espace de noms System.Collections.Generic ne sont pas synchronisées.

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

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0

XNA Framework

Pris en charge dans : 2.0, 1.0
Afficher: