ReadOnlySpan<T>.Enumerator Структура

Определение

Предоставляет перечислитель для элементов объекта 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

Параметры типа

T
Наследование
ReadOnlySpan<T>.Enumerator
Реализации

Комментарии

C# foreach языка C# и For Each... Далее конструкция в Visual Basic скрывает сложность перечислителей. Вместо прямого управления перечислителем рекомендуется использовать foreach или For Each...Next использовать его.

Изначально перечислитель размещается перед первым элементом в элементе ReadOnlySpan<T>. На этой позиции Current не определен. Перед чтением значения Currentнеобходимо вызвать MoveNext перечислитель к первому элементуReadOnlySpan<T>.

Current возвращает то же значение до MoveNext вызова. MoveNext задает Current для следующего элемента в элементе ReadOnlySpan<T>.

Если MoveNext проходит конец, ReadOnlySpan<T>MoveNext возвращаетсяfalse. Когда перечислитель находится в этом состоянии, последующие вызовы MoveNext также возвращаются false и Current не определены. Нельзя задать Current первый элемент снова ReadOnlySpan<T> . Вместо этого необходимо создать новый экземпляр перечислителя.

Хотя он ReadOnlySpan<T> выделяется в стеке, базовые данные, на которые ReadOnlySpan<T> указывает, могут не быть. Таким образом, перечисление через ReadOnlySpan<T> не является внутренне не потокобезопасной процедурой. Чтобы гарантировать безопасность потоков во время перечисления, необходимо реализовать собственную синхронизацию.

В отличие от некоторых других структур перечислителя в .NET, ReadOnlySpan<T>.Enumerator:

  • Не реализует интерфейс или IEnumerator<T> не реализует IEnumerator интерфейс. Это связано с тем, что ReadOnlySpan<T>.Enumerator это структура ссылок и не может быть боксирована.

  • Не включает метод, который может задать перечислителю начальную Reset позицию перед первым элементом в диапазоне. (Метод IEnumerator.Reset() должен быть реализован как часть интерфейса, но большинство реализутелей либо вызывают исключение, либо не предоставляют реализацию.)

Свойства

Имя Описание
Current

Возвращает ссылку на элемент в текущей позиции перечислителя.

Методы

Имя Описание
MoveNext()

Перемещает перечислитель к следующему элементу ReadOnlySpan<T>элемента .

Явные реализации интерфейса

Имя Описание
IDisposable.Dispose()

Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.

IEnumerator.Current

Возвращает элемент в коллекции в текущей позиции перечислителя.

IEnumerator.Reset()

Задает перечислителю начальную позицию, которая перед первым элементом в коллекции.

IEnumerator<T>.Current

Возвращает элемент в коллекции в текущей позиции перечислителя.

Применяется к