VBuffer<T> Struktura

Definice

Vyrovnávací paměť, která podporuje hustá i řídká vyjádření. Toto je typ reprezentace pro všechny VectorDataViewType instance. Explicitně definované hodnoty tohoto vektoru jsou vystaveny prostřednictvím GetValues() a, pokud nejsou hustá, 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)

Parametry typu

T

Typ vektoru. Neexistují žádná omezení v době kompilace, co by to mohlo být, ale tento kód a prakticky veškerý kód, který používá VBuffer<T> , předpokládá, že přiřazení hodnoty stačí k vytvoření její zcela nezávislé kopie. To například znamená, že vyrovnávací paměť není možná. Ale věci jako Int32, Singlea ReadOnlyMemory<T>jsou naprosto v pořádku.

Dědičnost
VBuffer<T>
Implementuje

Poznámky

Tato struktura je sama o sobě neměnná, ale pokud chcete povolit úpravy vyrovnávací paměti včetně opakovaného použití interních vyrovnávacích pamětí, je možné prostřednictvím získat přístup k proměnlivé variantě VBufferEditor<T>VBuffer<T>.

V celém kódu předpokládáme, že zhuštěná VBuffer<T> hodnota logicky odpovídá hustotě VBuffer<T> s výchozí hodnotou pro T vyplnění výchozích hodnot.

Konstruktory

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

Vytvořte pravděpodobně řídké vektorové znázornění.

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

Vytvořte hustou reprezentaci. Pole indices je často nespecifikované, ale pokud je zadáno, mělo by být považováno za vyrovnávací paměť, na které se má uchovávat, a případně použít.

Pole

Length

Logická délka vyrovnávací paměti.

Vlastnosti

IsDense

Získá hodnotu označující, zda každý logický prvek je explicitně reprezentován ve vyrovnávací paměti.

Metody

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

Zkopírujte z oddílu zdrojového pole do daného cíle.

CopyTo(Span<T>)

Zkopírujte z této vyrovnávací paměti do daného cílového rozsahu. To "zatěžuje".

CopyTo(Span<T>, Int32, T)

Zkopírujte z této vyrovnávací paměti do daného cílového rozsahu počínaje zadaným indexem. To "zatěžuje".

CopyTo(VBuffer<T>)

Zkopírujte z této vyrovnávací paměti do daného cíle.

CopyTo(VBuffer<T>, Int32, Int32)

Zkopírujte rozsah hodnot z této vyrovnávací paměti do daného cíle.

CopyToDense(VBuffer<T>)

Zkopírujte z této vyrovnávací paměti do daného cíle a vynucujte hustou reprezentaci.

DenseValues()

Vrátí výčet s položkami Length představujícími hodnoty.

GetEnumerator()

Vrátí enumerátor, který iteruje prostřednictvím hodnot v souboru VBuffer.

GetIndices()

Indexy. Pro hustou reprezentaci se toto pole nepoužívá a vrátí výchozí prázdný rozsah. V případě řídké reprezentace je tato reprezentace paralelní k vrácené z GetValues() a určuje logické indexy pro odpovídající hodnoty ve vzestupném pořadí, mezi 0 včetně a Length s výhradním přístupem, které odpovídají všem explicitně definovaným hodnotám. Všechny hodnoty v neurčeném indexu by měly být považovány za implicitně definované s výchozí hodnotou T.

GetItemOrDefault(Int32)

Varianta , GetItemOrDefault(Int32, T) která vrací hodnotu místo předání zpět pomocí parametru odkazu.

GetItemOrDefault(Int32, T)

Získá položku uloženou v této struktuře. V případě hustého vektoru se jedná o jednoduché vyhledávání. V případě zhuštěného vektoru se pokusí najít položku s tímto indexem a nastavit destination ji na tuto uloženou hodnotu, nebo pokud se žádná taková hodnota nenajde, přiřadí jí výchozí hodnotu.

GetValues()

Explicitně reprezentované hodnoty. V takovém IsDensepřípadě Length bude vrácená hodnota rovna Lengtha jinak bude mít délku menší než Length.

Items(Boolean)

Vrátí společný seznam všech dvojic index/hodnota.

ToString()

Vyrovnávací paměť, která podporuje hustá i řídká vyjádření. Toto je typ reprezentace pro všechny VectorDataViewType instance. Explicitně definované hodnoty tohoto vektoru jsou vystaveny prostřednictvím GetValues() a, pokud nejsou hustá, GetIndices().

Platí pro