VBuffer<T> Yapı

Tanım

Hem yoğun hem de seyrek gösterimleri destekleyen bir arabellek. Bu, tüm VectorDataViewType örnekler için gösterim türüdür. Bu vektörünün açıkça tanımlanmış değerleri, ve , yoğun GetIndices()değilse aracılığıyla GetValues() kullanıma sunulur.

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ür Parametreleri

T

Vektör türü. Bunun ne olabileceğine ilişkin derleme zamanı kısıtlamaları yoktur, ancak bu kod ve hemen hemen kullanan VBuffer<T> tüm kod, bir değerin atamasının tamamen bağımsız bir kopyasını oluşturmak için yeterli olduğu varsayımını verir. Bu nedenle, örneğin bu arabellek arabelleğinin mümkün olmadığı anlamına gelir. Ancak, , Singleve ReadOnlyMemory<T>gibi Int32şeyler tamamen iyidir.

Devralma
VBuffer<T>
Uygulamalar

Açıklamalar

Bu yapı tek başına sabittir, ancak iç arabelleklerin yeniden kullanılması da dahil olmak üzere arabellek düzenlemeyi etkinleştirmek için, aracılığıyla VBuffer<T>değiştirilebilir bir değişkene VBufferEditor<T> erişilebilir.

Kod boyunca, bir seyrek VBuffer<T> değerin varsayılan değerleri doldurmak için T varsayılan değerle mantıksal olarak bir yoğun VBuffer<T> değere eşdeğer olduğu varsayımını yaparız.

Oluşturucular

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

Muhtemelen seyrek bir vektör gösterimi oluşturma.

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

Yoğun bir temsil oluşturma. Dizi indices genellikle belirtilmez, ancak belirtilirse, büyük olasılıkla kullanılmak üzere tutulacak bir arabellek olarak kabul edilmelidir.

Alanlar

Length

Arabelleğin mantıksal uzunluğu.

Özellikler

IsDense

Her mantıksal öğenin arabellekte açıkça temsil edilip edilmediğini belirten bir değer alır.

Yöntemler

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

Kaynak dizinin bir bölümünden verilen hedefe kopyalayın.

CopyTo(Span<T>)

Bu arabellekten verilen hedef yayılmaya kopyalayın. Bu "reddeder."

CopyTo(Span<T>, Int32, T)

Belirtilen dizinden başlayarak bu arabellekten verilen hedef yayılmaya kopyalayın. Bu "reddeder."

CopyTo(VBuffer<T>)

Bu arabellekten verilen hedefe kopyalayın.

CopyTo(VBuffer<T>, Int32, Int32)

Bu arabellekten verilen hedefe bir değer aralığı kopyalayın.

CopyToDense(VBuffer<T>)

Bu arabellekten belirli bir hedefe kopyalayın ve yoğun bir temsili zorlar.

DenseValues()

Değerleri temsil eden öğelerle Length numaralandırılabilir bir değer döndürür.

GetEnumerator()

VBuffer'daki değerler arasında yineleyen bir numaralandırıcı döndürür.

GetIndices()

Endeksler. Yoğun bir gösterim için bu dizi kullanılmaz ve varsayılan "boş" yayılmayı döndürür. Seyrek gösterim için, bu değerden GetValues() döndürülene paraleldir ve karşılık gelen değerlerin mantıksal dizinlerini, açıkça tanımlanan tüm değerlere karşılık gelen 0 dahil ve Length dışlama arasında artan sırada belirtir. Belirtilmemiş dizinlerdeki tüm değerler, varsayılan değeriyle Törtük olarak tanımlanmış olarak ele alınmalıdır.

GetItemOrDefault(Int32)

Bunun bir GetItemOrDefault(Int32, T) değişkeni, bir başvuru parametresi kullanarak geri geçirmek yerine değeri döndürür.

GetItemOrDefault(Int32, T)

Bu yapıda depolanan öğeyi alır. Yoğun bir vektör söz konusu olduğunda bu basit bir aramadır. Seyrek vektör söz konusu olduğunda, bu dizine sahip girişi bulmaya çalışır ve bu depolanmış değere ayarlanır destination veya böyle bir değer bulunamazsa varsayılan değeri atar.

GetValues()

Açıkça temsil edilen değerler. Bu IsDenseolduğunda, Length döndürülen değerin değeri değerine eşit Lengtholur ve aksi takdirde değerinden küçük Lengthbir uzunluğa sahip olur.

Items(Boolean)

Tüm dizin/değer çiftlerinin birleşik listesini döndürür.

ToString()

Hem yoğun hem de seyrek gösterimleri destekleyen bir arabellek. Bu, tüm VectorDataViewType örnekler için gösterim türüdür. Bu vektörünün açıkça tanımlanmış değerleri, ve , yoğun GetIndices()değilse aracılığıyla GetValues() kullanıma sunulur.

Şunlara uygulanır