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)

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

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

搜尋 value0出現的、 value1value2,如果找到,則會傳 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)

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

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

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

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

使用每個索引鍵的 IComparable<T> 實作,根據第一個 Span<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>)

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

適用於

另請參閱