Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

List<T>.Enumerator structure

 

Date de publication : novembre 2016

Énumère les éléments d'un élément List<T>.

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

[SerializableAttribute]
public struct Enumerator : IEnumerator<T>, IDisposable, IEnumerator

NomDescription
System_CAPS_pubpropertyCurrent

Obtient l'élément situé à la position actuelle de l'énumérateur.

NomDescription
System_CAPS_pubmethodDispose()

Libère toutes les ressources utilisées par List<T>.Enumerator.

System_CAPS_pubmethodEquals(Object)

Indique si cette instance et un objet spécifié sont égaux.(Hérité de ValueType.)

System_CAPS_pubmethodGetHashCode()

Retourne le code de hachage de cette instance.(Hérité de ValueType.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodMoveNext()

Avance l'énumérateur à l'élément suivant du List<T>.

System_CAPS_pubmethodToString()

Retourne le nom de type qualifié complet de cette instance.(Hérité de ValueType.)

NomDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerator.Reset()

Rétablit l’énumérateur à sa position initiale, qui précède le premier élément de la collection.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIEnumerator.Current

Obtient l'élément situé à la position actuelle de l'énumérateur.

La foreach instruction 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 l'énumérateur directement.

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

Au départ, 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 avancer l'énumérateur jusqu'au premier élément de la collection avant de lire la valeur de Current.

Current retourne le même objet jusqu'à ce que MoveNext soit appelé. MoveNext affecte l'élément suivant à Current.

Si MoveNext passe à la fin de la collection, l'énumérateur est positionnée après le dernier élément dans la collection et MoveNext renvoie false. Lorsque l'énumérateur se trouve à cette position, les appels suivants à MoveNext également retourner false. Si le dernier appel à MoveNext retourné false, Current n'est pas défini. Vous ne pouvez pas attribuer de nouveau Current au premier élément de la collection ; vous devez créer une nouvelle instance de l'énumérateur à la place.

Un énumérateur est 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 est définitivement invalidé et son comportement n'est pas défini.

Comme l'énumérateur ne dispose pas d'un accès exclusif à la collection, l'énumération 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 tout au long 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.

Implémentations par défaut de collections dans System.Collections.Generic ne sont pas synchronisées.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 2.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: