Partage via


ReadOnlySpan<T>.Enumerator Structure

Définition

Fournit un énumérateur pour les éléments d’un ReadOnlySpan<T>.

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

Paramètres de type

T
Héritage
ReadOnlySpan<T>.Enumerator

Remarques

Foreach C# du langage C# et for each... La construction suivante dans Visual Basic masque la complexité des énumérateurs. Au lieu de manipuler directement l’énumérateur, il est recommandé d’utiliser foreach ou For Each...Next .

Initialement, l’énumérateur est positionné avant le premier élément du ReadOnlySpan<T>. À cette position, Current n'est pas défini. Vous devez appeler MoveNext pour avancer l’énumérateur vers le premier élément du ReadOnlySpan<T> avant de lire la valeur de Current.

Current retourne la même valeur jusqu’à ce que MoveNext soit appelé. MoveNext définit Current sur l’élément suivant dans le ReadOnlySpan<T>.

Si MoveNext passe la fin de , ReadOnlySpan<T>MoveNext retourne false. Lorsque l’énumérateur est à cet état, les appels suivants à MoveNext retournent false également et Current ne sont pas définis. Vous ne pouvez pas définir Current à nouveau sur le premier élément du ; vous devez créer une nouvelle instance d’énumérateur à la ReadOnlySpan<T> place.

Bien que le ReadOnlySpan<T> soit alloué sur la pile, les données sous-jacentes sur lesquelles pointe le ReadOnlySpan<T> peuvent ne pas l’être. Par conséquent, l’énumération via un ReadOnlySpan<T> n’est pas intrinsèquement une procédure thread-safe. Pour garantir la sécurité des threads pendant l’énumération, vous devez implémenter votre propre synchronisation.

Contrairement à d’autres structures d’énumérateur dans .NET, le ReadOnlySpan<T>.Enumerator:

  • N’implémente pas l’interface IEnumerator ou IEnumerator<T> . Cela est dû au fait que ReadOnlySpan<T>.Enumerator est un struct ref et ne peut pas être encadré.

  • N’inclut pas de Reset méthode, qui peut définir l’énumérateur sur sa position initiale avant le premier élément de l’étendue. (La IEnumerator.Reset() méthode doit être implémentée dans le cadre de l’interface, mais la plupart des implémenteurs lèvent une exception ou ne fournissent aucune implémentation.)

Propriétés

Current

Obtient une référence à l’élément à la position actuelle de l’énumérateur.

Méthodes

MoveNext()

Avance l’énumérateur à l’élément suivant de ReadOnlySpan<T>.

S’applique à