Freigeben über


VBuffer<T> Struktur

Definition

Ein Puffer, der sowohl dichte als auch spärliche Darstellungen unterstützt. Dies ist der Darstellungstyp für alle VectorDataViewType Instanzen. Die explizit definierten Werte dieses Vektors werden durch GetValues() und verfügbar gemacht, falls nicht dicht 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)

Typparameter

T

Der Typ des Vektors. Es gibt keine Kompilierzeiteinschränkungen, was dies sein könnte, aber dieser Code und praktisch der gesamte Code, der verwendet VBuffer<T> , gehen davon aus, dass eine Zuweisung eines Werts ausreicht, um eine völlig unabhängige Kopie davon zu erstellen. Dies bedeutet beispielsweise, dass ein Puffer von Puffern nicht möglich ist. Aber Dinge wie Int32, Singleund ReadOnlyMemory<T>, sind völlig in Ordnung.

Vererbung
VBuffer<T>
Implementiert

Hinweise

Diese Struktur ist an sich unveränderlich, aber um die Pufferbearbeitung einschließlich der Wiederverwendung der internen Puffer zu ermöglichen, kann über VBuffer<T>eine veränderliche Variante VBufferEditor<T> zugegriffen werden.

Im gesamten Code gehen wir davon aus, dass ein Sparse VBuffer<T> logisch einer Dichte VBuffer<T> mit dem Standardwert für T das Ausfüllen der Standardwerte entspricht.

Konstruktoren

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

Erstellen Sie eine möglicherweise spärliche Vektordarstellung.

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

Erstellen Sie eine dichte Darstellung. Das indices Array ist häufig nicht angegeben, aber wenn angegeben, sollte es als Puffer betrachtet werden, an dem festgehalten werden soll, um möglicherweise verwendet zu werden.

Felder

Length

Die logische Länge des Puffers.

Eigenschaften

IsDense

Ruft einen Wert ab, der angibt, ob jedes logische Element explizit im Puffer dargestellt wird.

Methoden

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

Kopieren Sie aus einem Abschnitt eines Quellarrays auf das angegebene Ziel.

CopyTo(Span<T>)

Kopieren Sie aus diesem Puffer in die angegebene Zielspanne. Dies "verdichtet".

CopyTo(Span<T>, Int32, T)

Kopieren Sie aus diesem Puffer ab dem angegebenen Index in die angegebene Zielspanne. Dies "verdichtet".

CopyTo(VBuffer<T>)

Kopieren Sie aus diesem Puffer in das angegebene Ziel.

CopyTo(VBuffer<T>, Int32, Int32)

Kopieren Sie einen Wertebereich aus diesem Puffer in das angegebene Ziel.

CopyToDense(VBuffer<T>)

Kopieren Sie aus diesem Puffer in das angegebene Ziel, um eine dichte Darstellung zu erzwingen.

DenseValues()

Gibt eine Aufzählung mit Length Elementen zurück, die die Werte darstellt.

GetEnumerator()

Gibt einen Enumerator zurück, der die Werte in VBuffer durchläuft.

GetIndices()

Die Indizes. Für eine dichte Darstellung wird dieses Array nicht verwendet und gibt die standardmäßige "leere" Spanne zurück. Bei einer Spärsedarstellung ist sie parallel zu der von GetValues() zurückgegebenen und gibt die logischen Indizes für die entsprechenden Werte in zunehmender Reihenfolge zwischen 0 inklusiven und Length exklusiven werten an, die allen explizit definierten Werten entsprechen. Alle Werte bei nicht angegebenen Indizes sollten als implizit mit dem Standardwert Tdefiniert werden.

GetItemOrDefault(Int32)

Eine Variante von GetItemOrDefault(Int32, T) , die den Wert zurückgibt, anstatt ihn mithilfe eines Verweisparameters zurück zu übergeben.

GetItemOrDefault(Int32, T)

Ruft das in dieser Struktur gespeicherte Element ab. Im Fall eines dichten Vektors ist dies eine einfache Suche. Im Fall eines Sparsevektors wird versucht, den Eintrag mit diesem Index zu finden, und auf diesen gespeicherten Wert festgelegt destination , oder wenn kein solcher Wert gefunden wurde, weisen Sie ihm den Standardwert zu.

GetValues()

Die explizit dargestellten Werte. Wenn dies ist IsDense, entspricht der Length des zurückgegebenen Werts Lengthund hat andernfalls eine Länge kleiner als Length.

Items(Boolean)

Gibt die gemeinsame Liste aller Index-Wert-Paare zurück.

ToString()

Ein Puffer, der sowohl dichte als auch spärliche Darstellungen unterstützt. Dies ist der Darstellungstyp für alle VectorDataViewType Instanzen. Die explizit definierten Werte dieses Vektors werden durch GetValues() und verfügbar gemacht, falls nicht dicht GetIndices().

Gilt für: