共用方式為


ReadOnlySpan<T> 結構

定義

提供任意記憶體連續區域的類型安全與記憶體安全只讀表示。

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

類型參數

T

ReadOnlySpan<T>中的項目類型。

繼承
ReadOnlySpan<T>
屬性

備註

ReadOnlySpan<T> 是堆疊上配置的 ref 結構,且永遠無法逸出至 Managed 堆積。 Ref 結構類型有一些限制,以確保它們無法升階到 Managed 堆積,包括無法在 Lambda 表達式中擷取它們、指派給類型 Object變數、指派給 dynamic 變數,而且無法實作任何介面類型。

ReadOnlySpan<T> 實例通常用來參考數位或數位部分的專案。 不過,不同於陣列,ReadOnlySpan<T> 實例可以指向堆疊上管理的記憶體、原生記憶體或記憶體。

建構函式

ReadOnlySpan<T>(T)

在指定的參考周圍建立長度為1的新 ReadOnlySpan<T>

ReadOnlySpan<T>(T[])

在整個指定的陣列上建立新的 ReadOnlySpan<T>

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

建立新的 ReadOnlySpan<T>,其中包含從指定索引開始之陣列的指定項目數。

ReadOnlySpan<T>(Void*, Int32)

從指定記憶體位址開始的指定 T 項目數目,建立新的 ReadOnlySpan<T>

屬性

Empty

傳回空 ReadOnlySpan<T>

IsEmpty

傳回值,這個值表示目前的唯讀範圍是空的。

Item[Int32]

從指定之以零起始之索引的唯讀範圍取得專案。

Length

唯讀範圍中的項目數目。

方法

CastUp<TDerived>(ReadOnlySpan<TDerived>)

TDerived 的唯讀範圍轉換為 T的唯讀範圍。

CopyTo(Span<T>)

將這個 ReadOnlySpan<T> 的內容複製到目的地 Span<T>

Equals(Object)
已淘汰.
已淘汰.

不支援。 擲回 NotSupportedException

GetEnumerator()

傳回這個 ReadOnlySpan<T>的列舉值。

GetHashCode()
已淘汰.

不支援。 擲回 NotSupportedException

GetPinnableReference()

傳回 T 型別物件的唯讀參考,可用於釘選。

此方法的目的是要支援 .NET 編譯程式,而不是由使用者程式代碼呼叫。

Slice(Int32)

從目前只讀範圍形成配量,從指定的索引開始。

Slice(Int32, Int32)

從指定長度的指定索引開始,從目前只讀範圍形成配量。

ToArray()

將這個唯讀範圍的內容複製到新的數位中。

ToString()

傳回這個 ReadOnlySpan<T>的字串表示。

TryCopyTo(Span<T>)

嘗試將此 ReadOnlySpan<T> 的內容複製到 Span<T>,並傳回值,指出作業是否成功。

運算子

Equality(ReadOnlySpan<T>, ReadOnlySpan<T>)

傳回值,這個值表示兩個 ReadOnlySpan<T> 實例是否相等。

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

定義 ArraySegment<T>ReadOnlySpan<T>的隱含轉換。

Implicit(T[] to ReadOnlySpan<T>)

定義陣列到 ReadOnlySpan<T>的隱含轉換。

Inequality(ReadOnlySpan<T>, ReadOnlySpan<T>)

傳回值,這個值表示兩個 ReadOnlySpan<T> 實例是否不相等。

擴充方法

ToImmutableArray<T>(ReadOnlySpan<T>)

從指定的項目產生不可變的內容陣列。

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

使用指定的 IComparable<T> 泛型介面,搜尋整個已排序 ReadOnlySpan<T> 的值。

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

使用指定的 TComparer 泛型類型,搜尋整個已排序 ReadOnlySpan<T> 指定的值。

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

使用指定的 TComparable 泛型類型,搜尋整個排序 ReadOnlySpan<T> 的值。

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

尋找 spanother之間共用之任何通用前置詞的長度。

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

決定 spanother之間共用之任何通用前置詞的長度。

Contains<T>(ReadOnlySpan<T>, T)

指出指定的值是否在唯讀範圍中找到。 使用 IEquatable{T}來比較值。Equals(T)。

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

搜尋出現 value0value1

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

搜尋出現 value0value1value2

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

搜尋任何指定的 values

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

搜尋任何指定的 values

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

搜尋指定之 value以外的任何值。

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

搜尋 value0value1以外的任何值。

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

搜尋 value0value1value2以外的任何值。

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

搜尋指定之 values以外的任何值。

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

搜尋指定之 values以外的任何值。

ContainsAnyExceptInRange<T>(ReadOnlySpan<T>, T, T)

搜尋範圍以外的任何值,範圍介於 lowInclusivehighInclusive之間,包括 。

ContainsAnyInRange<T>(ReadOnlySpan<T>, T, T)

搜尋介於 lowInclusivehighInclusive之間範圍中的任何值,包括 。

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

計算指定 valuespan中發生的次數。

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

計算 span中發生 value 的次數。

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

判斷指定的值是否出現在範圍結尾。

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

判斷指定的序列是否出現在唯讀範圍結尾。

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

搜尋指定的值,並傳回其第一次出現的索引。 使用 IEquatable{T}來比較值。Equals(T)。

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

搜尋指定的序列,並傳回其第一次出現的索引。 使用 IEquatable{T}來比較值。Equals(T)。

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

使用邏輯 OR 運算符搜尋任何指定值的第一個索引,類似於呼叫 IndexOf 多次。

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

使用邏輯 OR 運算符搜尋任何指定值的第一個索引,類似於呼叫 IndexOf 多次。

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

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

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

使用邏輯 OR 運算符搜尋任何指定值的第一個索引,類似於呼叫 IndexOf 多次。

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

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

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

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

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

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

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

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

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

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

IndexOfAnyExceptInRange<T>(ReadOnlySpan<T>, T, T)

搜尋範圍以外的任何值的第一個索引,範圍介於 lowInclusivehighInclusive之間,包括 。

IndexOfAnyInRange<T>(ReadOnlySpan<T>, T, T)

搜尋範圍中任何值的第一個索引,範圍介於 lowInclusivehighInclusive之間,包括 。

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

搜尋指定的值,並傳回其最後一次出現的索引。 使用 IEquatable{T}來比較值。Equals(T)。

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

搜尋指定的序列,並傳回其最後一次出現的索引。 使用 IEquatable{T}來比較值。Equals(T)。

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

使用邏輯 OR 運算符搜尋任何指定值的最後一個索引,類似於呼叫 LastIndexOf 數次。

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

使用邏輯 OR 運算符搜尋任何指定值的最後一個索引,類似於呼叫 LastIndexOf 數次。

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

搜尋任何指定值的最後一個索引。

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

使用邏輯 OR 運算符搜尋任何指定值的最後一個索引,類似於呼叫 LastIndexOf 數次。

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

搜尋指定之 value以外的任何值的最後一個索引。

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

搜尋指定之 value0value1以外的任何值的最後一個索引。

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

搜尋指定之 value0value1value2以外的任何值的最後一個索引。

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

搜尋指定之 values以外的任何值的最後一個索引。

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

搜尋指定之 values以外的任何值的最後一個索引。

LastIndexOfAnyExceptInRange<T>(ReadOnlySpan<T>, T, T)

搜尋範圍以外的任何值的最後一個索引,範圍介於 lowInclusivehighInclusive之間,包括 。

LastIndexOfAnyInRange<T>(ReadOnlySpan<T>, T, T)

搜尋範圍中任何值的最後一個索引,範圍介於 lowInclusivehighInclusive之間,包含 。

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

判斷兩個只讀序列是否在記憶體中重疊。

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

判斷兩個只讀序列是否在記憶體中重疊,並輸出元素位移。

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

source 複製到 destination,並將所有出現的 oldValue 取代為 newValue

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

使用 IComparable{T} 比較兩個只讀序列的元素,以判斷其相對順序。CompareTo(T)。

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

使用 IEquatable{T} 比較元素,判斷兩個只讀序列是否相等。Equals(T)。

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

使用 IEqualityComparer<T>比較項目,判斷兩個序列是否相等。

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

判斷指定的值是否出現在範圍開頭。

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

判斷指定的序列是否出現在唯讀範圍開始時。

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

從唯讀範圍中移除指定專案的所有前置和尾端專案。

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

從唯讀範圍中移除在唯讀範圍中指定的一組元素的所有前置和尾端專案。

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

從唯讀範圍中移除指定專案的所有尾端專案。

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

從唯讀範圍中移除在唯讀範圍中指定的一組元素的所有尾端專案。

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

從範圍中移除指定專案的所有前置專案。

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

從範圍中移除在唯讀範圍中指定的所有前置專案集。

適用於

另請參閱