Cliquez pour évaluer et commenter
MSDN
MSDN Library
Développement .NET
.NET Framework 3.5
.NET Framework
Bibliothèque de classes ....
IEnumerator(T), interface
Réduire tout/Développer tout Réduire tout
Cette page est spécifique à
Microsoft Visual Studio 2008/.NET Framework 3.5

D'autres versions sont également disponibles pour :
Bibliothèque de classes .NET Framework
IEnumerator<(Of <(T>)>), interface

Mise à jour : November 2007

Prend en charge une itération simple sur une collection générique.

Espace de noms :  System.Collections.Generic
Assembly :  mscorlib (dans mscorlib.dll)
Visual Basic (Déclaration)
Public Interface IEnumerator(Of T) _
    Implements IDisposable, IEnumerator
Visual Basic (Utilisation)
Dim instance As IEnumerator(Of T)
C#
public interface IEnumerator<T> : IDisposable, 
    IEnumerator
VisualC++
generic<typename T>
public interface class IEnumerator : IDisposable, 
    IEnumerator
J#
J# prend en charge l'utilisation d'API génériques mais pas la déclaration de nouvelles API.
JScript
JScript ne prend pas en charge les types ou les méthodes génériques.

Paramètres de type

T

Type des objets à énumérer.

IEnumerator<(Of <(T>)>) est l'interface de base pour tous les énumérateurs génériques.

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

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. À cette position, Current n'est pas défini. Par conséquent, vous devez appeler MoveNext pour avancer l'énumérateur au premier élément de la collection avant la lecture de la valeur de Current.

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

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 est à cette position, les appels suivants à MoveNext retournent également false. Si le dernier appel à MoveNext a retourné false, Current n'est pas défini. Vous ne pouvez pas affecter de nouveau à Current le premier élément de la collection ; créez à la place une nouvelle instance de l'énumérateur.

La méthode Reset est fournie pour l'interopérabilité COM. Elle ne doit pas nécessairement être implémentée ; au lieu de cela, l'implémenteur peut simplement lever un NotSupportedException.

Un énumérateur reste valide aussi longtemps que la collection demeure inchangée. Si la collection est modifiée en ajoutant, modifiant ou supprimant des é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.

Remarques à l'attention des implémenteurs :

L'implémentation de cette interface requiert l'implémentation de l'interface IEnumerator non générique. Les méthodes MoveNext et Reset ne dépendent pas de T et apparaissent uniquement sur l'interface non générique. La propriété Current apparaît sur les deux interfaces et présente différents types de retour. Implémentez la propriété IEnumerator..::.Current non générique comme une implémentation d'interface explicite. Cela permet à tout consommateur de l'interface non générique d'utiliser l'interface générique.

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
Contenu de la communauté   Qu'est-ce que le Contenu de la communauté ?
Ajouter du contenu RSS  Annotations
Processing
© 2009 Microsoft Corporation. Tous droits réservés. Conditions d'utilisation | Marques | Confidentialité
Page view tracker