VBuffer<T> 結構
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
支援密集和疏鬆表示法的緩衝區。 這是所有 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> 的所有程式代碼都會假設指派值就足以完全獨立複製它。 例如,這表示無法緩衝區緩衝區。 但、 Single和ReadOnlyMemory<T>等Int32專案完全沒問題。
- 繼承
-
VBuffer<T>
- 實作
備註
此結構本身是不可變的,但若要啟用緩衝區編輯,包括重複使用內部緩衝區,可以透過存取VBuffer<T>可變動的變體VBufferEditor<T>。
在整個程式代碼中,我們假設疏VBuffer<T>鬆在邏輯上相當於填入預設值T
的密集VBuffer<T>值。
建構函式
VBuffer<T>(Int32, Int32, T[], Int32[]) |
建構可能疏鬆向量表示法。 |
VBuffer<T>(Int32, T[], Int32[]) |
建構密集表示法。 數位通常 |
欄位
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 獨佔之間,對應至所有明確定義的值。 未指定索引的所有值都應該視為以預設值 |
GetItemOrDefault(Int32) |
的 GetItemOrDefault(Int32, T) 變體會傳回值,而不是使用參考參數傳回值。 |
GetItemOrDefault(Int32, T) |
取得儲存在此結構中的專案。 在密集向量的情況下,這是簡單的查閱。
如果是疏鬆向量,它會嘗試尋找具有該索引的專案,並將設定 |
GetValues() |
明確表示的值。 當這個 IsDense時, Length 傳回值的 會等於 Length,否則長度會小於 Length。 |
Items(Boolean) |
傳回所有索引/值組的聯合清單。 |
ToString() |
支援密集和疏鬆表示法的緩衝區。 這是所有 VectorDataViewType 實例的表示類型。 此向量的明確定義值會透過 GetValues() 公開,如果不是密集,則 GetIndices()為 。 |