Język

VBuffer<T> Struktura

Definicja

Bufor obsługujący reprezentacje gęste i rozrzedłe. Jest to typ reprezentacji dla wszystkich VectorDataViewType wystąpień. Jawnie zdefiniowane wartości tego wektora są uwidocznione za pomocą GetValues() metod i, jeśli nie są gęste, 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 wektora. Nie ma ograniczeń czasu kompilacji dotyczących tego, co może być, ale ten kod i praktycznie cały używany kod VBuffer<T> sprawia, że założenie, że przypisanie wartości jest wystarczające do całkowitej niezależnej kopii. Oznacza to na przykład, że bufor buforów nie jest możliwy. Ale takie rzeczy jak Int32, Singlei ReadOnlyMemory<T>, są całkowicie w porządku.

Dziedziczenie
VBuffer<T>
Implementuje

Uwagi

Ta struktura jest sama niezmienna, ale aby umożliwić edycję buforu, w tym ponowne użycie buforów wewnętrznych, można uzyskać dostęp do wariantu VBufferEditor<T> modyfikowalnego za pośrednictwem programu VBuffer<T>.

W całym kodzie przyjmujemy założenie, że rozrzedzenie VBuffer<T> jest logicznie równoważne gęstości VBuffer<T> z wartością domyślną wypełniania T wartości domyślnych.

Konstruktory

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

Skonstruuj ewentualnie rozrzedliwą reprezentację wektorów.

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

Konstruowanie gęstej reprezentacji. Tablica indices jest często nieokreślona, ale jeśli zostanie określona, należy ją uznać za bufor, do którego należy użyć.

Pola

Nazwa Opis
Length

Długość logiczna buforu.

Właściwości

Nazwa Opis
IsDense

Pobiera wartość wskazującą, czy każdy element logiczny jest jawnie reprezentowany w buforze.

Metody

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

Skopiuj z sekcji tablicy źródłowej do danego miejsca docelowego.

CopyTo(Span<T>, Int32, T)

Skopiuj z tego buforu do danego zakresu docelowego, zaczynając od określonego indeksu. To "zagęszczenie".

CopyTo(Span<T>)

Skopiuj z tego buforu do danego zakresu docelowego. To "zagęszczenie".

CopyTo(VBuffer<T>, Int32, Int32)

Skopiuj zakres wartości z tego buforu do danego miejsca docelowego.

CopyTo(VBuffer<T>)

Skopiuj z tego buforu do danego miejsca docelowego.

CopyToDense(VBuffer<T>)

Skopiuj z tego buforu do danego miejsca docelowego, wymuszając gęstą reprezentację.

DenseValues()

Zwraca wyliczenie z elementami Length reprezentującymi wartości.

GetEnumerator()

Zwraca moduł wyliczający, który iteruje wartości w programie VBuffer.

GetIndices()

Indeksy. W przypadku gęstej reprezentacji ta tablica nie jest używana i zwróci domyślny zakres "pusty". W przypadku reprezentacji rozrzedzonej jest równoległa do tej zwracanej z GetValues() i określa logiczne indeksy odpowiadających im wartości, w kolejności rosnącej z zakresu od 0 do Length wyłącznych, odpowiadających wszystkim jawnie zdefiniowanym wartościom. Wszystkie wartości w nieokreślonych indeksach powinny być traktowane jako niejawnie zdefiniowane z wartością Tdomyślną .

GetItemOrDefault(Int32, T)

Pobiera element przechowywany w tej strukturze. W przypadku gęstego wektora jest to proste wyszukiwanie. W przypadku wektora rozrzedzona spróbuje znaleźć wpis z tym indeksem i ustawić destination na tę przechowywaną wartość lub jeśli taka wartość nie została znaleziona, przypisz jej wartość domyślną.

GetItemOrDefault(Int32)

Wariant tej GetItemOrDefault(Int32, T) wartości zwraca wartość zamiast przekazywać ją z powrotem przy użyciu parametru odwołania.

GetValues()

Jawnie reprezentowane wartości. Gdy ta IsDensewartość , Length zwracana wartość będzie równa Length, a w przeciwnym razie będzie mieć długość mniejszą niż Length.

Items(Boolean)

Zwraca wspólną listę wszystkich par indeksu/wartości.

ToString()

Bufor obsługujący reprezentacje gęste i rozrzedłe. Jest to typ reprezentacji dla wszystkich VectorDataViewType wystąpień. Jawnie zdefiniowane wartości tego wektora są uwidocznione za pomocą GetValues() metod i, jeśli nie są gęste, GetIndices().

Dotyczy