SortedSet<T>.Enumerator Structure

Définition

Énumère les éléments d’un objet SortedSet<T>.Enumerates the elements of a SortedSet<T> object.

public: value class SortedSet<T>::Enumerator : System::Collections::Generic::IEnumerator<T>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
[System.Serializable]
public struct SortedSet<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type SortedSet<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface ISerializable
    interface IDeserializationCallback
    interface IDisposable
Public Structure SortedSet(Of T).Enumerator
Implements IDeserializationCallback, IEnumerator(Of T), ISerializable

Paramètres de type

T
Héritage
SortedSet<T>.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, la Current propriété n’est pas définie.At this position, the Current property is undefined. Par conséquent, vous devez appeler MoveNext la méthode pour avancer l’énumérateur jusqu’au premier élément de la collection avant de lire la Currentvaleur de.Therefore, you must call the MoveNext method 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 Current pas définir à nouveau le premier élément de la collection; vous devez créer un nouvel objet énumérateur à la place.You cannot set Current to the first element of the collection again; you must create a new enumerator object 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.

L’énumérateur ne dispose pas d’un accès exclusif à la collection; par conséquent, l’énumération d’une collection n’est pas intrinsèquement une procédure thread-safe.The enumerator doesn't 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 de collections dans l’espace de noms System.Collections.Generic ne sont pas synchronisées.Default implementations of collections in the System.Collections.Generic namespace 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 SortedSet<T>.Enumerator.Releases all resources used by the SortedSet<T>.Enumerator.

MoveNext()

Avance l’énumérateur à l’élément suivant de la collection SortedSet<T>.Advances the enumerator to the next element of the SortedSet<T> collection.

Implémentations d’interfaces explicites

IDeserializationCallback.OnDeserialization(Object)

Implémente l’interface ISerializable et déclenche l’événement de désérialisation une fois la désérialisation terminée.Implements the ISerializable interface and raises the deserialization event when the deserialization is complete.

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.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Implémente l'interface ISerializable et retourne les données nécessaires pour sérialiser l'instance SortedSet<T>.Implements the ISerializable interface and returns the data needed to serialize the SortedSet<T> instance.

S’applique à