ReadOnlySpan<T> 結構

定義

提供任意記憶體之連續區域的型別安全和記憶體安全唯讀表示。

generic <typename T>
public value class ReadOnlySpan
public readonly ref struct ReadOnlySpan<T>
type ReadOnlySpan<'T> = struct
Public Structure ReadOnlySpan(Of T)

類型參數

T

中的 ReadOnlySpan<T> 專案類型。

繼承
ReadOnlySpan<T>

備註

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

ReadOnlySpan<T>實例通常用來參考陣列或陣列一部分的專案。 不過,不同于陣列, 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

唯讀範圍中的項目數目。

方法

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> 中搜尋值。

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

指出是否在唯讀範圍中找到指定的值。 值是使用 IEquatable{T}.Equals(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>, ReadOnlySpan<T>)

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

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>, ReadOnlySpan<T>)

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

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

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

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

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

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>, 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>)

從範圍中移除唯讀範圍中指定的所有開頭元素集項目。

適用於

另請參閱