VBuffer<T> 結構

定義

支援密集和疏鬆表示法的緩衝區。 這是所有 VectorDataViewType 實例的表示類型。 此向量的明確定義值會透過 GetValues() 公開,如果不是密集,則 GetIndices()為 。

public readonly struct VBuffer<T> : System.Collections.IEnumerable
public readonly struct VBuffer<T>
type VBuffer<'T> = struct
    interface IEnumerable
type VBuffer<'T> = struct
Public Structure VBuffer(Of T)
Implements IEnumerable
Public Structure VBuffer(Of T)

類型參數

T

向量的類型。 這沒有編譯時間限制,但此程式代碼和實際使用 VBuffer<T> 的所有程式代碼都會假設指派值就足以完全獨立複製它。 例如,這表示無法緩衝區緩衝區。 但、 SingleReadOnlyMemory<T>Int32專案完全沒問題。

繼承
VBuffer<T>
實作

備註

此結構本身是不可變的,但若要啟用緩衝區編輯,包括重複使用內部緩衝區,可以透過存取VBuffer<T>可變動的變體VBufferEditor<T>

在整個程式代碼中,我們假設疏VBuffer<T>鬆在邏輯上相當於填入預設值T的密集VBuffer<T>值。

建構函式

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

建構可能疏鬆向量表示法。

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

建構密集表示法。 數位通常 indices 未指定,但如果指定,則應該將它視為要保留的緩衝區,以供使用。

欄位

Length

緩衝區的邏輯長度。

屬性

IsDense

取得值,指出緩衝區中是否明確表示每個邏輯專案。

方法

Copy(T[], Int32, VBuffer<T>, Int32)

從來源陣列的 區段複製到指定的目的地。

CopyTo(Span<T>)

從這個緩衝區複製到指定的目的地範圍。 這個「densifies」。

CopyTo(Span<T>, Int32, T)

從指定的索引開始,從這個緩衝區複製到指定的目的地範圍。 這個「densifies」。

CopyTo(VBuffer<T>)

從這個緩衝區複製到指定的目的地。

CopyTo(VBuffer<T>, Int32, Int32)

將這個緩衝區的值範圍複製到指定的目的地。

CopyToDense(VBuffer<T>)

從這個緩衝區複製到指定的目的地,強制密集表示。

DenseValues()

傳回可列舉的專案 Length ,表示值。

GetEnumerator()

傳回列舉值,逐一查看 VBuffer 中的值。

GetIndices()

索引。 對於密集表示法,不會使用此陣列,而且會傳回預設的 「empty」 範圍。 對於疏鬆表示法,其平行於從 GetValues() 傳回的 ,並指定對應值的邏輯索引,依遞增順序,介於 0 內含和 Length 獨佔之間,對應至所有明確定義的值。 未指定索引的所有值都應該視為以預設值 T隱含定義。

GetItemOrDefault(Int32)

GetItemOrDefault(Int32, T) 變體會傳回值,而不是使用參考參數傳回值。

GetItemOrDefault(Int32, T)

取得儲存在此結構中的專案。 在密集向量的情況下,這是簡單的查閱。 如果是疏鬆向量,它會嘗試尋找具有該索引的專案,並將設定 destination 為該預存值,或者如果找不到這類值,請將其指派預設值。

GetValues()

明確表示的值。 當這個 IsDense時, Length 傳回值的 會等於 Length,否則長度會小於 Length

Items(Boolean)

傳回所有索引/值組的聯合清單。

ToString()

支援密集和疏鬆表示法的緩衝區。 這是所有 VectorDataViewType 實例的表示類型。 此向量的明確定義值會透過 GetValues() 公開,如果不是密集,則 GetIndices()為 。

適用於