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隐藏枚举器的复杂性。 建议使用或For Each...Next建议直接foreach操作枚举器, 而不是直接操作枚举器。

最初,枚举器位于第一个元素之前 ReadOnlySpan<T>。 在此位置, Current 未定义。 在读取值Current之前,必须调用MoveNext枚举器将枚举器前进到第一项ReadOnlySpan<T>

Current 返回相同的值,直到 MoveNext 调用为止。 MoveNext 设置为 Current .. 中的 ReadOnlySpan<T>下一项。

如果 MoveNext 传递末尾 ReadOnlySpan<T>MoveNextfalse返回。 当枚举器处于此状态时,后续调用 MoveNext 也会返回 falseCurrent 未定义。 不能再次设置为 Current 第一项 ReadOnlySpan<T> ;必须改为创建新的枚举器实例。

尽管在 ReadOnlySpan<T> 堆栈上分配了该数据,但 ReadOnlySpan<T> 指向的基础数据可能不是。 因此,通过 ReadOnlySpan<T> 枚举本质上不是线程安全的过程。 若要保证枚举期间的线程安全性,必须实现自己的同步。

与.NET中的一些其他枚举器结构不同,ReadOnlySpan<T>.Enumerator

属性

名称 说明
Current

获取对枚举器当前位置的项的引用。

方法

名称 说明
MoveNext()

将枚举器前进到下 ReadOnlySpan<T>一项。

显式接口实现

名称 说明
IDisposable.Dispose()

执行与释放、释放或重置非托管资源关联的应用程序定义任务。

IEnumerator.Current

获取集合中枚举器当前位置的元素。

IEnumerator.Reset()

将枚举器设置为其初始位置,该位置位于集合中的第一个元素之前。

IEnumerator<T>.Current

获取集合中枚举器当前位置的元素。

适用于