SequenceReader<T> 结构

定义

提供从 ReadOnlySequence<T> 读取二进制数据和文本数据的方法,重点关注性能和最小或零堆分配。

generic <typename T>
 where T : value classpublic value class SequenceReader
public ref struct SequenceReader<T> where T : struct
type SequenceReader<'T (requires 'T : struct)> = struct
Public Structure SequenceReader(Of T)

类型参数

T

只读序列的类型。

继承
SequenceReader<T>

构造函数

SequenceReader<T>(ReadOnlySequence<T>)

根据给定 ReadOnlySequence<T> 创建 SequenceReader<T>

属性

Consumed

获取由读取器处理的 T 值总数。

CurrentSpan

获取 Span<T>,它包含 Sequence 中的当前段。

CurrentSpanIndex

获取 CurrentSpan 中的索引。

End

获取一个值,该值指示 Sequence 中是否不再有数据。

Length

获取读取器的 Sequence 中的项数。

Position

获取 Sequence 中的当前位置。

Remaining

获取读取器的 Sequence中的剩余项。

Sequence

获取读取器的基础 ReadOnlySequence<T>

UnreadSequence

获取 Sequence 的未读取部分。

UnreadSpan

获取 CurrentSpan 的未读取部分。

方法

Advance(Int64)

将读取器向前移动指定的项数。

AdvancePast(T)

向前跳过具有给定 value 的连续实例。

AdvancePastAny(ReadOnlySpan<T>)

跳过具有任何指定 values 的连续实例。

AdvancePastAny(T, T)

向前跳过具有两个指定值之一的连续实例。

AdvancePastAny(T, T, T)

向前跳过具有三个指定值之一的连续实例。

AdvancePastAny(T, T, T, T)

向前跳过具有四个指定值之一的连续实例。

AdvanceToEnd()

将读取器移动到序列末尾。

IsNext(ReadOnlySpan<T>, Boolean)

检查在只读范围中指定的值是否是序列中的下一个值。

IsNext(T, Boolean)

检查指定值是否是序列中的下一个值。

Rewind(Int64)

将读取器向后移动指定的项数。

TryAdvanceTo(T, Boolean)

搜索指定的分隔符,并在找到该分隔符后向前越过它(可选)。

TryAdvanceToAny(ReadOnlySpan<T>, Boolean)

搜索大量指定分隔符中的任意分隔符,并向前越过找到的第一个分隔符(可选)。

TryCopyTo(Span<T>)

如果有足够的数据来填充目标范围,则将当前位置的数据复制到目标范围。

TryPeek(Int64, T)

查看指定偏移量处的下一个值,而不前移读取器。

TryPeek(T)

查看下一个值,而不前移读取器。

TryRead(T)

读取下一个值,并前移读取器。

TryReadExact(Int32, ReadOnlySequence<T>)

尝试从当前序列中准确 count 读取值。

TryReadTo(ReadOnlySequence<T>, ReadOnlySpan<T>, Boolean)

尝试读取数据,直到指定为只读范围的整个分隔符匹配。

TryReadTo(ReadOnlySequence<T>, T, Boolean)

尝试读取给定 delimiter 之前的所有内容。

TryReadTo(ReadOnlySequence<T>, T, T, Boolean)

尝试读取给定 delimiter 之前的所有内容,忽略前面为 delimiterEscape 的分隔符。

TryReadTo(ReadOnlySpan<T>, ReadOnlySpan<T>, Boolean)

尝试读取给定 delimiter 之前的所有内容。

TryReadTo(ReadOnlySpan<T>, T, Boolean)

尝试读取给定 delimiter 之前的所有内容。

TryReadTo(ReadOnlySpan<T>, T, T, Boolean)

尝试读取给定 delimiter 之前的所有内容,忽略前面为 delimiterEscape 的分隔符。

TryReadToAny(ReadOnlySequence<T>, ReadOnlySpan<T>, Boolean)

尝试读取指定的任意 delimiters 之前的所有内容。

TryReadToAny(ReadOnlySpan<T>, ReadOnlySpan<T>, Boolean)

尝试读取指定的任意 delimiters 之前的所有内容。

适用于