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

Definizione

Fornisce un enumeratore per gli elementi di 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

Parametri di tipo

T
Ereditarietà
ReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.Enumerator

Commenti

Il codice c# foreach del linguaggio c# e For Each... Avanti costrutto in Visual Basic nasconde la complessità degli enumeratori.The C# foreach of the C# language and the For Each...Next construct in Visual Basic hides the complexity of enumerators. Anziché modificare direttamente l'enumeratore, usando foreach o For Each...Next è consigliato.Instead of directly manipulating the enumerator, using foreach or For Each...Next is recommended.

Inizialmente, l'enumeratore è posizionato prima del primo elemento nel ReadOnlySpan<T>.Initially, the enumerator is positioned before the first element in the ReadOnlySpan<T>. In questa posizione, la proprietà Current è indefinita.At this position, Current is undefined. È necessario chiamare MoveNext per passare l'enumeratore al primo elemento di ReadOnlySpan<T> prima di leggere il valore di Current.You must call MoveNext to advance the enumerator to the first item in the ReadOnlySpan<T> before reading the value of Current.

Current Restituisce lo stesso valore fino a MoveNext viene chiamato.Current returns the same value until MoveNext is called. MoveNext imposta Current all'elemento successivo nel ReadOnlySpan<T>.MoveNext sets Current to the next item in the ReadOnlySpan<T>.

Se MoveNext raggiunge la fine del ReadOnlySpan<T>, MoveNext restituisce false.If MoveNext passes the end of the ReadOnlySpan<T>, MoveNext returns false. Quando l'enumeratore si trova in questo stato, le chiamate successive a MoveNext inoltre restituire false e Current è definito.When the enumerator is at this state, subsequent calls to MoveNext also return false and Current is undefined. Non è possibile impostare Current sul primo elemento nel ReadOnlySpan<T> ovvero anche in questo caso, è necessario creare una nuova istanza di enumeratore.You cannot set Current to the first item in the ReadOnlySpan<T> again; you must create a new enumerator instance instead.

Anche se il ReadOnlySpan<T> viene allocata nello stack, i dati sottostanti in cui il ReadOnlySpan<T> punti, potrebbero non essere.Though the ReadOnlySpan<T> is allocated on the stack, the underlying data on which the ReadOnlySpan<T> points to, may not be. Pertanto, l'enumerazione tramite un ReadOnlySpan<T> intrinsecamente non è una procedura thread-safe.Therefore, enumerating through a ReadOnlySpan<T> is intrinsically not a thread-safe procedure. Per garantire la sicurezza dei thread durante l'enumerazione, è necessario implementare la propria sincronizzazione.To guarantee thread safety during enumeration, you must implement your own synchronization.

A differenza di altre strutture di enumeratore in .NET i ReadOnlySpan<T>.Enumerator:Unlike some other enumerator structures in .NET, the ReadOnlySpan<T>.Enumerator:

  • Non implementa il IEnumerator o IEnumerator<T> interfaccia.Does not implement the IEnumerator or IEnumerator<T> interface. Infatti ReadOnlySpan<T>.Enumerator è un struct ref e non può essere sottoposto a boxing.This is because ReadOnlySpan<T>.Enumerator is a ref struct and cannot be boxed.

  • Non include un Reset metodo, che è possibile impostare l'enumeratore sulla propria posizione iniziale prima del primo elemento nell'intervallo.Does not include a Reset method, which can set the enumerator to its initial position before the first element in the span. (Il IEnumerator.Reset() metodo deve essere implementato come parte dell'interfaccia, ma la maggior parte degli implementatori generano un'eccezione o non forniscono alcuna implementazione.)(The IEnumerator.Reset() method must be implemented as part of the interface, but most implementors either throw an exception or provide no implementation.)

Proprietà

Current Current Current Current

Restituisce un riferimento all'elemento in corrispondenza della posizione corrente dell'enumeratore.Gets a reference to the item at the current position of the enumerator.

Metodi

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

Sposta l'enumeratore all'elemento successivo dell'oggetto ReadOnlySpan<T>.Advances the enumerator to the next item of the ReadOnlySpan<T>.

Si applica a