Queue<T>.IEnumerable.GetEnumerator Queue<T>.IEnumerable.GetEnumerator Queue<T>.IEnumerable.GetEnumerator Method

Définition

Retourne un énumérateur qui itère au sein d’une collection.Returns an enumerator that iterates through a collection.

 virtual System::Collections::IEnumerator ^ System.Collections.IEnumerable.GetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator ();
Function GetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator

Retours

IEnumerator qui peut être utilisé pour itérer au sein de la collection.An IEnumerator that can be used to iterate through the collection.

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 the 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. Reset replace également l'énumérateur à cette position.Reset also brings the enumerator back to this position. À cette position, Current n'est pas défini.At this position, Current is undefined. 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.Therefore, 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 tant que MoveNext ou Reset n'est pas appelé.Current returns the same object until either MoveNext or Reset 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. Pour attribuer une nouvelle fois Current au premier élément de la collection, vous pouvez appeler Reset suivi de MoveNext.To set Current to the first element of the collection again, you can call Reset followed by MoveNext.

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' 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 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.

Cette méthode est une opération O (1).This method is an O(1) operation.

S’applique à

Voir aussi