Dictionary<TKey,TValue>.ValueCollection.Enumerator Structure

Définition

Énumère les éléments de Dictionary<TKey,TValue>.ValueCollection.Enumerates the elements of a Dictionary<TKey,TValue>.ValueCollection.

public: value class Dictionary<TKey, TValue>::ValueCollection::Enumerator : System::Collections::Generic::IEnumerator<TValue>
[System.Serializable]
public struct Dictionary<TKey,TValue>.ValueCollection.Enumerator : System.Collections.Generic.IEnumerator<TValue>
type Dictionary<'Key, 'Value>.ValueCollection.Enumerator = struct
    interface IEnumerator<'Value>
    interface IEnumerator
    interface IDisposable
Public Structure Dictionary(Of TKey, TValue).ValueCollection.Enumerator
Implements IEnumerator(Of TValue)

Paramètres de type

TKey
TValue
Héritage
Dictionary<TKey,TValue>.ValueCollection.Enumerator
Attributs
Implémente

Remarques

L' foreach instruction de la C# for eachlangue( dans C++masque la complexité des énumérateurs. For EachThe foreach statement of the C# language (for each in C++, For Each in Visual Basic) hides the complexity of enumerators. Il est donc recommandé d'utiliser foreach plutôt que de manipuler l'énumérateur directement.Therefore, using foreach is recommended, instead of directly manipulating the enumerator.

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.Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.

Au départ, l'énumérateur est positionné avant le premier élément de la collection.Initially, the enumerator is positioned before the first element in the collection. À cette position, Current n'est pas défini.At this position, Current is undefined. Vous devez appeler MoveNext pour avancer l’énumérateur jusqu’au premier élément de la collection avant de lire la valeur Currentde.You must call MoveNext to advance the enumerator to the first element of the collection before reading the value of Current.

Current retourne le même objet jusqu'à ce que MoveNext soit appelé.Current returns the same object until MoveNext is called. MoveNext affecte l'élément suivant à Current.MoveNext sets Current to the next element.

Si MoveNext passe la fin de la collection, l’énumérateur est positionné après le dernier élément de la collection et MoveNext retourne false.If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the collection and MoveNext returns false. Lorsque l’énumérateur se trouve à cette position, les appels MoveNext suivants à falseretournent également.When the enumerator is at this position, subsequent calls to MoveNext also return false. Si le dernier appel à MoveNext Current retourné falseest non défini.If the last call to MoveNext returned false, Current is undefined. 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.You cannot set Current to the first element of the collection again; you must create a new enumerator instance instead.

Un énumérateur est valide tant que la collection demeure inchangée.An enumerator remains valid as long as the collection remains unchanged. 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évocablement invalidé et MoveNext l' IEnumerator.Reset appel suivant à InvalidOperationExceptionou lève une exception.If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call to MoveNext or IEnumerator.Reset throws an InvalidOperationException.

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.The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. Pour garantir la sécurité des threads pendant l'énumération, vous pouvez verrouiller la collection tout au long de cette opération.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. Pour permettre à plusieurs threads d’accéder en lecture et en écriture à la collection, vous devez implémenter votre propre synchronisation.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

Les implémentations par défaut des System.Collections.Generic collections dans ne sont pas synchronisées.Default implementations of collections in System.Collections.Generic are not synchronized.

Propriétés

Current

Obtient l'élément situé à la position actuelle de l'énumérateur.Gets the element at the current position of the enumerator.

Méthodes

Dispose()

Libère toutes les ressources utilisées par Dictionary<TKey,TValue>.ValueCollection.Enumerator.Releases all resources used by the Dictionary<TKey,TValue>.ValueCollection.Enumerator.

MoveNext()

Avance l'énumérateur à l'élément suivant de Dictionary<TKey,TValue>.ValueCollection.Advances the enumerator to the next element of the Dictionary<TKey,TValue>.ValueCollection.

Implémentations d’interfaces explicites

IEnumerator.Current

Obtient l'élément situé à la position actuelle de l'énumérateur.Gets the element at the current position of the enumerator.

IEnumerator.Reset()

Rétablit l'énumérateur à sa position initiale, qui précède le premier élément de la collection.Sets the enumerator to its initial position, which is before the first element in the collection.

S’applique à

Voir aussi