Condividi tramite


DataViewRow Classe

Definizione

Riga logica di dati. Può essere una riga di una IDataView o una riga autonoma.

public abstract class DataViewRow : IDisposable
type DataViewRow = class
    interface IDisposable
Public MustInherit Class DataViewRow
Implements IDisposable
Ereditarietà
DataViewRow
Derivato
Implementazioni

Costruttori

DataViewRow()

Riga logica di dati. Può essere una riga di una IDataView o una riga autonoma.

Proprietà

Batch

In questo modo è possibile riconciliare più righe generate in genere da GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random). Quando si ottiene un set, è necessario, consentendo al tempo stesso l'elaborazione parallela di procedere, avere sempre lo scopo di ripristinare l'ordine originale. Si noti che un utente si preoccupa o meno di tale ordine originale in un'applicazione specifica è un'altra storia del tutto (la maggior parte dei chiamanti di questo come una questione pratica non lo chiamerebbe, altrimenti non lo chiamerebbe), ma almeno in linea di principio dovrebbe essere possibile ricostruire l'ordine originale che si otterrebbe da un oggetto configurato in modo identico GetRowCursor(IEnumerable<DataViewSchema.Column>, Random). Pertanto: per qualsiasi implementazione del cursore, i numeri batch devono essere non decrescente. Inoltre, qualsiasi numero di batch specificato deve essere visualizzato solo in uno dei cursori restituiti da GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random). In questo modo, l'ordine è determinato dal numero di batch. Un'operazione che riconcilia questi cursori per produrre un cursore singolo coerente può farlo disegnando dal singolo cursore, tra tutti i cursori nel set, con il numero di batch più piccolo disponibile.

Si noti che non esiste alcun suggerimento che i batch per una voce specifica siano coerenti dal cursore al cursore, ad eccezione della coerenza con conseguente ordinamento complessivo. La stessa voce può avere numeri batch diversi da un cursore a un altro. Non è inoltre necessario che venga visualizzato alcun numero di batch specificato. Si tratta semplicemente di un meccanismo per il ripristino dell'ordinamento da un partizionamento eventualmente arbitrario dei dati. Ne consegue anche che, naturalmente, considerando che il batch come proprietà dei dati non è completamente valido.

Position

Questo viene incrementato quando il contenuto sottostante cambia, offrendo ai client un modo per rilevare la modifica. Deve essere -1 quando l'oggetto si trova in uno stato in cui non è possibile recuperare i valori. In particolare, per un DataViewRowCursoroggetto , questo sarà prima MoveNext() che venga chiamato per la prima volta o dopo la prima chiamata MoveNext() e restituisce false.

Si noti che questa posizione non è posizionata all'interno dei dati sottostanti, ma solo la posizione di questo cursore. Se ad esempio si apre un set di cursori di streaming paralleli o un cursore casuale, la prima voce valida di ogni cursore avrà sempre la posizione 0.

Schema

Ottiene un Schemaoggetto , che fornisce informazioni sul nome e sul tipo per le variabili ,ad esempio le colonne nel sistema di tipi di ML.NET, archiviate in questa riga.

Metodi

Dispose()

Implementazione dell'eliminazione. Chiama Dispose(Boolean) con true.

Dispose(Boolean)

Metodo eliminabile per il modello eliminabile. Questa implementazione predefinita non esegue alcuna operazione.

GetGetter<TValue>(DataViewSchema+Column)

Restituisce un delegato getter di valore per recuperare il valore dell'oggetto specificato columndalla riga. Viene generata un'eccezione se la colonna non è attiva in questa riga o se il tipo TValue è diverso dal tipo di questa colonna.

GetIdGetter()

Getter per un valore ID a 128 bit. È comune che gli oggetti usino più DataViewRow istanze per eseguire l'iterazione su ciò che si suppone essere gli stessi dati, ad esempio, in un IDataView set di cursori produrranno gli stessi dati di un cursore seriale, appena partizionati e un cursore casuale produrrà gli stessi dati di un cursore seriale o qualsiasi altro cursore casuale, solo mischiato. L'ID esiste per le applicazioni che devono riconciliare la voce in realtà. Idealmente questo ID deve essere univoco, ma per motivi pratici, è sufficiente se le collisioni sono semplicemente estremamente improbabili.

Si noti che questo ID, anche se deve essere coerente per più flussi in base alla semantica precedente, non è considerato parte dei dati per se. Pertanto, per prendere in considerazione l'esempio di una vista dati in modo specifico, una singola vista dati deve eseguire il rendering di ID coerenti in tutti i cursori, ma non vi è alcun suggerimento che se i dati "uguali" sono stati presentati in una vista dati diversa (ad esempio, essere trasformati, memorizzati nella cache, salvati o qualsiasi altro), che gli ID tra le due viste dati diverse abbiano una relazione riconoscibile.

IsColumnActive(DataViewSchema+Column)

Restituisce un valore che indica se la colonna specificata è attiva in questa riga.

Si applica a