Span<T> 结构

定义

提供任意内存的连续区域的类型安全和内存安全表示形式。

generic <typename T>
public value class Span
public readonly ref struct Span<T>
[System.Runtime.InteropServices.Marshalling.NativeMarshalling(typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>))]
public readonly ref struct Span<T>
type Span<'T> = struct
[<System.Runtime.InteropServices.Marshalling.NativeMarshalling(typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>))>]
type Span<'T> = struct
Public Structure Span(Of T)

类型参数

T

Span<T>项的类型。

继承
Span<T>
属性

注解

有关此 API 的详细信息,请参阅 Span<T> 的补充 API 备注

构造函数

Span<T>(T)

围绕指定的引用创建一个长度为 1 的新 Span<T>

Span<T>(T[])

在整个指定数组上创建新的 Span<T> 对象。

Span<T>(T[], Int32, Int32)

从指定索引开始,创建包含数组的指定元素数的新 Span<T> 对象。

Span<T>(Void*, Int32)

从指定数量的T元素(从指定内存地址开始)创建一个新Span<T>对象。

属性

Empty

返回空的 Span<T> 对象。

IsEmpty

返回一个值,该值指示当前的 Span<T> 是否为空。

Item[Int32]

获取指定基于零的索引处的元素。

Length

返回当前范围的长度。

方法

Clear()

清除此 Span<T> 对象的内容。

CopyTo(Span<T>)

将此 Span<T> 的内容复制到目标 Span<T>

Equals(Object)
已过时.
已过时.

不支持对此方法的调用。

Fill(T)

用指定的值填充此范围的元素。

GetEnumerator()

返回用于此 Span<T> 的枚举器。

GetHashCode()
已过时.

引发 NotSupportedException

GetPinnableReference()

返回对 T 类型的对象的引用,该对象可用于固定。

此方法旨在支持 .NET 编译器,而不是由用户代码调用。

Slice(Int32)

从指定索引处开始的当前范围外形成切片。

Slice(Int32, Int32)

从指定长度的指定索引处开始,在当前范围外形成切片。

ToArray()

将此范围的内容复制到新数组中。

ToString()

返回此 Span<T> 对象的字符串表示形式。

TryCopyTo(Span<T>)

尝试将当前 Span<T> 复制到目标 Span<T>,并返回一个指示复制操作是否成功的值。

运算符

Equality(Span<T>, Span<T>)

返回一个值,该值指示两个 Span<T> 对象是否相等。

Implicit(ArraySegment<T> to Span<T>)

定义 ArraySegment<T>Span<T> 的隐式转换。

Implicit(Span<T> to ReadOnlySpan<T>)

定义 Span<T>ReadOnlySpan<T> 的隐式转换。

Implicit(T[] to Span<T>)

定义数组到 Span<T> 的隐式转换。

Inequality(Span<T>, Span<T>)

返回一个值,该值指示两个 Span<T> 对象是否不相等。

扩展方法

ToImmutableArray<T>(Span<T>)

将范围转换为不可变数组。

BinarySearch<T>(Span<T>, IComparable<T>)

使用指定的 IComparable<T> 泛型接口,在整个已排序的 Span<T> 中搜索值。

BinarySearch<T,TComparer>(Span<T>, T, TComparer)

使用指定的 TComparer 泛型类型,在整个已排序的 Span<T> 中搜索指定值。

BinarySearch<T,TComparable>(Span<T>, TComparable)

使用指定的 TComparable 泛型类型,在整个已排序的 Span<T> 中搜索值。

CommonPrefixLength<T>(Span<T>, ReadOnlySpan<T>)

查找 和 other之间共享的任何通用前缀的span长度。

CommonPrefixLength<T>(Span<T>, ReadOnlySpan<T>, IEqualityComparer<T>)

查找 和 other之间共享的任何通用前缀的span长度。

Contains<T>(Span<T>, T)

指示是否在跨度内找到指定的值。 使用 IEquatable{T}.Equals(T) 比较各值。

ContainsAny<T>(Span<T>, T, T)

搜索 或 value1value0匹配项,如果找到 ,则true返回 。 如果未找到,则 false返回 。

ContainsAny<T>(Span<T>, T, T, T)

搜索 、 或 value2value0value1匹配项,如果找到 ,则true返回 。 如果未找到,则 false返回 。

ContainsAny<T>(Span<T>, SearchValues<T>)

搜索任何指定的 values 匹配项,如果找到,则 true 返回 。 如果未找到,则 false返回 。

ContainsAny<T>(Span<T>, ReadOnlySpan<T>)

搜索任何指定的 values 匹配项,如果找到,则 true 返回 。 如果未找到,则 false返回 。

ContainsAnyExcept<T>(Span<T>, T)

搜索指定 value以外的任何值。

ContainsAnyExcept<T>(Span<T>, T, T)

搜索 除 或 value1以外的value0任何值。

ContainsAnyExcept<T>(Span<T>, T, T, T)

搜索除 、 value1value2以外的value0任何值。

ContainsAnyExcept<T>(Span<T>, SearchValues<T>)

搜索指定 values以外的任何值。

ContainsAnyExcept<T>(Span<T>, ReadOnlySpan<T>)

搜索指定 values以外的任何值。

ContainsAnyExceptInRange<T>(Span<T>, T, T)

在 和 highInclusive之间lowInclusive搜索范围之外的任何值(包括 )。

ContainsAnyInRange<T>(Span<T>, T, T)

搜索 介于 和 highInclusive之间的lowInclusive范围内的任何值(包括 ),如果找到 ,则true返回 。 如果未找到,则 false返回 。

Count<T>(Span<T>, T)

计算指定的 value 在 中 span发生的次数。

Count<T>(Span<T>, ReadOnlySpan<T>)

计算指定的 value 在 中 span发生的次数。

EndsWith<T>(Span<T>, ReadOnlySpan<T>)

确定指定的序列是否出现在跨度的结尾。

IndexOf<T>(Span<T>, T)

搜索指定值并返回其第一次出现的索引。 使用 IEquatable{T}.Equals(T) 比较各值。

IndexOf<T>(Span<T>, ReadOnlySpan<T>)

搜索指定的序列并返回其第一次出现的索引。 使用 IEquatable{T}.Equals(T) 比较各值。

IndexOfAny<T>(Span<T>, T, T)

搜索任何指定值的第一个索引,其方式类似于使用逻辑 OR 运算符多次调用 IndexOf。

IndexOfAny<T>(Span<T>, T, T, T)

搜索任何指定值的第一个索引,其方式类似于使用逻辑 OR 运算符多次调用 IndexOf。

IndexOfAny<T>(Span<T>, SearchValues<T>)

搜索任何指定值的第一个索引。

IndexOfAny<T>(Span<T>, ReadOnlySpan<T>)

搜索任何指定值的第一个索引,其方式类似于使用逻辑 OR 运算符多次调用 IndexOf。

IndexOfAnyExcept<T>(Span<T>, T)

搜索指定 value以外的任何值的第一个索引。

IndexOfAnyExcept<T>(Span<T>, T, T)

搜索指定 value0value1以外的任何值的第一个索引。

IndexOfAnyExcept<T>(Span<T>, T, T, T)

搜索指定 value0value1value2以外的任何值的第一个索引。

IndexOfAnyExcept<T>(Span<T>, SearchValues<T>)

搜索指定 values以外的任何值的第一个索引。

IndexOfAnyExcept<T>(Span<T>, ReadOnlySpan<T>)

搜索指定 values以外的任何值的第一个索引。

IndexOfAnyExceptInRange<T>(Span<T>, T, T)

在 和 highInclusive之间lowInclusive搜索范围之外的任何值的第一个索引,包括 。

IndexOfAnyInRange<T>(Span<T>, T, T)

在 和 highInclusive之间lowInclusive搜索任何值的第一个索引,包括 。

LastIndexOf<T>(Span<T>, T)

搜索指定值并返回其最后一次出现的索引。 使用 IEquatable{T}.Equals(T) 比较各值。

LastIndexOf<T>(Span<T>, ReadOnlySpan<T>)

搜索指定的序列并返回其最后一次出现的索引。 使用 IEquatable{T}.Equals(T) 比较各值。

LastIndexOfAny<T>(Span<T>, T, T)

搜索任何指定值的最后一个索引,其方式类似于使用逻辑 OR 运算符多次调用 LastIndexOf。

LastIndexOfAny<T>(Span<T>, T, T, T)

搜索任何指定值的最后一个索引,其方式类似于使用逻辑 OR 运算符多次调用 LastIndexOf。

LastIndexOfAny<T>(Span<T>, SearchValues<T>)

搜索任何指定值的最后一个索引。

LastIndexOfAny<T>(Span<T>, ReadOnlySpan<T>)

搜索任何指定值的最后一个索引,其方式类似于使用逻辑 OR 运算符多次调用 LastIndexOf。

LastIndexOfAnyExcept<T>(Span<T>, T)

搜索指定 value值以外的任何值的最后一个索引。

LastIndexOfAnyExcept<T>(Span<T>, T, T)

搜索指定 value0value1以外的任何值的最后一个索引。

LastIndexOfAnyExcept<T>(Span<T>, T, T, T)

搜索指定 value0value1value2以外的任何值的最后一个索引。

LastIndexOfAnyExcept<T>(Span<T>, SearchValues<T>)

搜索指定 values值以外的任何值的最后一个索引。

LastIndexOfAnyExcept<T>(Span<T>, ReadOnlySpan<T>)

搜索指定 values值以外的任何值的最后一个索引。

LastIndexOfAnyExceptInRange<T>(Span<T>, T, T)

搜索 和 highInclusive之间的lowInclusive范围之外的任何值的最后一个索引,包括 。

LastIndexOfAnyInRange<T>(Span<T>, T, T)

搜索 和 highInclusive之间的lowInclusive任何值的最后一个索引,包括 。

Overlaps<T>(Span<T>, ReadOnlySpan<T>)

确定跨度和只读跨度是否在内存中重叠。

Overlaps<T>(Span<T>, ReadOnlySpan<T>, Int32)

确定跨度和只读跨度是否在内存中重叠且输出元素偏移。

Replace<T>(Span<T>, T, T)

将所有 oldValue 项都替换为 newValue

Reverse<T>(Span<T>)

反转整个跨度中元素的序列。

SequenceCompareTo<T>(Span<T>, ReadOnlySpan<T>)

通过使用 IComparable{T}.CompareTo(T) 比较它们的元素,确定跨度和只读跨度的相对顺序。

SequenceEqual<T>(Span<T>, ReadOnlySpan<T>)

通过使用 IEquatable{T}.Equals(T) 比较元素,确定跨度和只读跨度是否相等。

SequenceEqual<T>(Span<T>, ReadOnlySpan<T>, IEqualityComparer<T>)

通过使用 比较 元素,确定两个 IEqualityComparer<T>序列是否相等。

Sort<T>(Span<T>)

使用 的每个元素的实现对IComparable<T>整个 Span<T> 中的元素Span<T>进行排序。

Sort<T>(Span<T>, Comparison<T>)

使用指定的 Comparison<T>,对整个 Span<T> 中的元素进行排序。

Sort<T,TComparer>(Span<T>, TComparer)

使用 TComparer 对整个 Span<T> 中的元素进行排序。

Sort<TKey,TValue>(Span<TKey>, Span<TValue>)

基于第一个 Span<T> 中的键,使用每个键的 IComparable<T> 实现,对一对范围(一个包含键,另一个包含对应的项)进行排序。

Sort<TKey,TValue>(Span<TKey>, Span<TValue>, Comparison<TKey>)

基于第一个 Span<T> 中的键,使用指定的比较,对一对范围(一个包含键,另一个包含对应的项)进行排序。

Sort<TKey,TValue,TComparer>(Span<TKey>, Span<TValue>, TComparer)

基于第一个 Span<T> 中的键,使用指定的比较器,对一对范围(一个包含键,另一个包含对应的项)进行排序。

StartsWith<T>(Span<T>, ReadOnlySpan<T>)

确定指定的序列是否出现在跨度的开头。

Trim<T>(Span<T>, T)

删除跨度中的指定元素的所有前导和尾随出现次数。

Trim<T>(Span<T>, ReadOnlySpan<T>)

从跨度中删除在只读跨度中指定的一组元素的所有前导和尾随出现次数。

TrimEnd<T>(Span<T>, T)

删除跨度中的指定元素的所有尾随出现次数。

TrimEnd<T>(Span<T>, ReadOnlySpan<T>)

从跨度中删除在只读跨度中指定的一组元素的所有尾随出现次数。

TrimStart<T>(Span<T>, T)

删除跨度中的指定元素的所有前导出现次数。

TrimStart<T>(Span<T>, ReadOnlySpan<T>)

从跨度中删除在只读跨度中指定的一组元素的所有前导出现次数。

适用于

另请参阅