ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator Struct

Définition

Fournit un énumérateur pour les éléments d’un ReadOnlySpan<T>.Provides an enumerator for the elements of a ReadOnlySpan<T>.

public: value class ReadOnlySpan<T>::Enumerator
public struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator

Paramètres de type

T
Héritage
ReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.Enumerator

Remarques

C# foreach du langage C# et le pour chaque... Suivant construction dans Visual Basic masque la complexité des énumérateurs.The C# foreach of the C# language and the For Each...Next construct in Visual Basic hides the complexity of enumerators. Plutôt que de manipuler directement l’énumérateur à l’aide de foreach ou For Each...Next est recommandé.Instead of directly manipulating the enumerator, using foreach or For Each...Next is recommended.

Initialement, l’énumérateur est positionné avant le premier élément dans le ReadOnlySpan<T>.Initially, the enumerator is positioned before the first element in the ReadOnlySpan<T>. À cette position, Current n'est pas défini.At this position, Current is undefined. Vous devez appeler MoveNext pour avancer l’énumérateur vers le premier élément dans le ReadOnlySpan<T> avant de lire la valeur de Current.You must call MoveNext to advance the enumerator to the first item in the ReadOnlySpan<T> before reading the value of Current.

Current Retourne la même valeur jusqu'à ce que MoveNext est appelée.Current returns the same value until MoveNext is called. MoveNext définit Current à l’élément suivant dans le ReadOnlySpan<T>.MoveNext sets Current to the next item in the ReadOnlySpan<T>.

Si MoveNext passe la fin de la ReadOnlySpan<T>, MoveNext retourne false.If MoveNext passes the end of the ReadOnlySpan<T>, MoveNext returns false. Lorsque l’énumérateur se trouve à cet état, les appels suivants à MoveNext également retourner false et Current n’est pas défini.When the enumerator is at this state, subsequent calls to MoveNext also return false and Current is undefined. Vous ne pouvez pas définir Current vers le premier élément dans le ReadOnlySpan<T> à nouveau ; vous devez créer une nouvelle instance de l’énumérateur à la place.You cannot set Current to the first item in the ReadOnlySpan<T> again; you must create a new enumerator instance instead.

Bien que le ReadOnlySpan<T> est allouée sur la pile, les données sous-jacentes sur lesquelles le ReadOnlySpan<T> points, ne peuvent pas être.Though the ReadOnlySpan<T> is allocated on the stack, the underlying data on which the ReadOnlySpan<T> points to, may not be. Par conséquent, l’énumération d’un ReadOnlySpan<T> n’est pas intrinsèquement une procédure thread-safe.Therefore, enumerating through a ReadOnlySpan<T> is intrinsically not a thread-safe procedure. Pour garantir la sécurité des threads pendant l’énumération, vous devez implémenter votre propre synchronisation.To guarantee thread safety during enumeration, you must implement your own synchronization.

Contrairement à certains autres structures d’énumérateur dans .NET, le ReadOnlySpan<T>.Enumerator:Unlike some other enumerator structures in .NET, the ReadOnlySpan<T>.Enumerator:

  • N’implémente pas le IEnumerator ou IEnumerator<T> interface.Does not implement the IEnumerator or IEnumerator<T> interface. Il s’agit, car ReadOnlySpan<T>.Enumerator est un ref struct et ne peut pas être converti (boxed).This is because ReadOnlySpan<T>.Enumerator is a ref struct and cannot be boxed.

  • N’inclut pas un Reset (méthode), qui peut l’énumérateur à sa position initiale avant le premier élément dans l’étendue.Does not include a Reset method, which can set the enumerator to its initial position before the first element in the span. (Le IEnumerator.Reset() méthode doit être implémentée en tant que partie de l’interface, mais la plupart des implémenteurs lever une exception ou ne fournir aucune implémentation.)(The IEnumerator.Reset() method must be implemented as part of the interface, but most implementors either throw an exception or provide no implementation.)

Propriétés

Current Current Current Current

Obtient une référence à l’élément à la position actuelle de l’énumérateur.Gets a reference to the item at the current position of the enumerator.

Méthodes

MoveNext() MoveNext() MoveNext() MoveNext()

Avance l’énumérateur à l’élément suivant de ReadOnlySpan<T>.Advances the enumerator to the next item of the ReadOnlySpan<T>.

S’applique à