Udostępnij za pośrednictwem


VBuffer<T> Struktura

Definicja

Bufor obsługujący zarówno gęste, jak i rozrzedłe reprezentacje. Jest to typ reprezentacji dla wszystkich VectorDataViewType wystąpień. Jawnie zdefiniowane wartości tego wektora są uwidocznione przez i GetValues() , 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 żadnych ograniczeń czasu kompilacji dotyczących tego, co może być, ale ten kod i praktycznie cały kod, który używa 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 dobre.

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 rozrzedzanie VBuffer<T> jest logicznie równoważne gęstej VBuffer<T> z wartością domyślną do T wypełniania wartości domyślnych.

Konstruktory

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

Skonstruuj ewentualnie rozrzedliwą reprezentację wektora.

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, który ma być przechowywany, do użycia.

Pola

Length

Długość logiczna buforu.

Właściwości

IsDense

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

Metody

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

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

CopyTo(Span<T>)

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

CopyTo(Span<T>, Int32, T)

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

CopyTo(VBuffer<T>)

Skopiuj z tego buforu do danego miejsca docelowego.

CopyTo(VBuffer<T>, Int32, Int32)

Skopiuj zakres wartości 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 usłudze 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 zwracanej z GetValues() i określa logiczne indeksy odpowiednich wartości w kolejności rosnącej z przedziału od 0 Length do wykluczania odpowiadającego wszystkim jawnie zdefiniowanym wartościom. Wszystkie wartości w nieokreślonych indeksach powinny być traktowane jako niejawnie zdefiniowane z wartością domyślną .T

GetItemOrDefault(Int32)

Wariant tego GetItemOrDefault(Int32, T) zwraca wartość zamiast przekazywać ją z powrotem przy użyciu parametru referencyjnego.

GetItemOrDefault(Int32, T)

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

GetValues()

Jawnie reprezentowane wartości. W przypadku tej IsDensewartości zwracana Length wartość będzie równa Length, a w przeciwnym razie długość będzie mniejsza niż Length.

Items(Boolean)

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

ToString()

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

Dotyczy