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 堆積,包括它們無法進行 Boxed、擷取在 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>)

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

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

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

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

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

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

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

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

搜尋 value0 出現的 或 value1 ,並在找到時傳 true 回 。 如果找不到,則傳 false 回 。

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

搜尋 value0 出現的 、 value1value2 ,如果找到,則會傳 true 回 。 如果找不到,則傳 false 回 。

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

搜尋任何指定的 values 專案,並在找到時傳 true 回 。 如果找不到,則傳 false 回 。

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

搜尋任何指定的 values 專案,並在找到時傳 true 回 。 如果找不到,則傳 false 回 。

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

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

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

搜尋 或 value1 以外的 value0 任何值。

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

搜尋 、 value1value2 以外的 value0 任何值。

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

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

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

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

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

在 和 highInclusive 之間 lowInclusive 搜尋範圍以外的任何值。

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

在 和 highInclusive 之間 lowInclusive 搜尋範圍中的任何值,並在找到時傳回 true 。 如果找不到,則傳 false 回 。

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

計算 中 span 發生指定 value 次數。

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

計算 中 span 發生的次數 value

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)

在 和 highInclusive 之間 lowInclusive 搜尋範圍以外的任何值的第一個索引。

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

在 和 highInclusive 之間 lowInclusive 搜尋範圍中任何值的第一個索引,包括 。

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)

搜尋介於 和 highInclusive 之間 lowInclusive 範圍外之任何值的最後一個索引。

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

在 和 highInclusive 之間 lowInclusive 搜尋範圍中任何值的最後一個索引,包括 。

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

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

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

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

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

複製到 sourcedestination ,以 取代 所有出現的 oldValuenewValue

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

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

適用於

另請參閱