ReadOnlySpan<T>.Enumerator Structure

Définition

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

public: value class ReadOnlySpan<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface IDisposable
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure ReadOnlySpan(Of T).Enumerator

Paramètres de type

T
Héritage
ReadOnlySpan<T>.Enumerator
Implémente

Remarques

Le C# foreach de la langue C# et le For Each... Ensuite construire dans Visual Basic masque la complexité des énumérateurs. Au lieu de manipuler directement l’énumérateur, l’utilisation foreach ou For Each...Next l’utilisation est recommandée.

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 faire avancer l’énumérateur vers le premier élément dans l’avant ReadOnlySpan<T> de lire la valeur de Current.

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

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

Bien qu’il ReadOnlySpan<T> soit alloué sur la pile, les données sous-jacentes sur lesquelles les ReadOnlySpan<T> points peuvent ne pas être. Par conséquent, l’énumération par le biais d’une ReadOnlySpan<T> procédure non thread-safe n’est intrinsèquement pas 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 ou IEnumerator<T> l’interfaceIEnumerator. Cela est dû au fait qu’il ReadOnlySpan<T>.Enumerator s’agit d’un struct ref et ne peut pas être boxé.

  • 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

Nom Description
Current

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

Méthodes

Nom Description
MoveNext()

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

Implémentations d’interfaces explicites

Nom Description
IDisposable.Dispose()

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non managées.

IEnumerator.Current

Obtient l’élément de la collection à la position actuelle de l’énumérateur.

IEnumerator.Reset()

Définit l’énumérateur à sa position initiale, qui est avant le premier élément de la collection.

IEnumerator<T>.Current

Obtient l’élément de la collection à la position actuelle de l’énumérateur.

S’applique à