Freigeben über


DataViewRow Klasse

Definition

Eine logische Datenzeile. Kann eine Zeile einer IDataView oder einer eigenständigen Zeile sein.

public abstract class DataViewRow : IDisposable
type DataViewRow = class
    interface IDisposable
Public MustInherit Class DataViewRow
Implements IDisposable
Vererbung
DataViewRow
Abgeleitet
Implementiert

Konstruktoren

DataViewRow()

Eine logische Datenzeile. Kann eine Zeile einer IDataView oder einer eigenständigen Zeile sein.

Eigenschaften

Batch

Dies bietet ein Mittel für die Abstimmung mehrerer Zeilen, die im Allgemeinen GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random)hergestellt wurden. Wenn Sie einen Satz erhalten, müssen Sie gleichzeitig die parallele Verarbeitung zulassen, aber immer ein Ziel haben, dass die ursprüngliche Bestellung wiederherstellbar sein sollte. Beachten Sie, ob sich ein Benutzer darum kümmert, dass diese ursprüngliche Reihenfolge in der spezifischen Anwendung insgesamt eine andere Geschichte ist (die meisten Aufrufer dieser Art als praktische Sache nicht, andernfalls würden sie es nicht aufrufen), aber zumindest sollte es möglich sein, die ursprüngliche Reihenfolge zu rekonstruieren, die eine von einer identisch konfigurierten .GetRowCursor(IEnumerable<DataViewSchema.Column>, Random) Also: Bei jeder Cursorimplementierung sollten Batchnummern nicht verringert werden. Darüber hinaus sollte jede angegebene Batchnummer nur in einem der Cursor angezeigt werden, wie sie zurückgegeben werden GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random). Auf diese Weise wird die Reihenfolge durch die Batchnummer bestimmt. Ein Vorgang, der diese Cursor abgleicht, um eine konsistente einzelne Cursorverarbeitung zu erzeugen, könnte dies tun, indem er von dem einzelnen Cursor, unter allen Cursorn im Satz, die die kleinste Batchnummer verfügbar hat, zeichnen.

Beachten Sie, dass es keinen Vorschlag gibt, dass die Batche für einen bestimmten Eintrag von cursorn zu Cursorn konsistent sind, mit Ausnahme der Konsistenz in der gleichen Gesamtbestellung. Derselbe Eintrag könnte verschiedene Batchnummern von einem Cursor in einen anderen haben. Es ist auch nicht erforderlich, dass überhaupt eine bestimmte Batchnummer angezeigt werden muss. Es handelt sich lediglich um einen Mechanismus zum Wiederherstellen der Reihenfolge aus einer möglicherweise willkürlichen Partitionierung der Daten. Es folgt natürlich auch, dass der Batch als Eigenschaft der Daten vollständig ungültig ist.

Position

Dies wird erhöht, wenn sich die zugrunde liegenden Inhalte ändern, sodass Clients eine Möglichkeit zum Erkennen von Änderungen erhalten. Es sollte -1 sein, wenn sich das Objekt in einem Zustand befindet, in dem Werte nicht abgerufen werden können. Insbesondere wird dies für ein DataViewRowCursor, wenn MoveNext() jemals zum ersten Mal aufgerufen oder nach dem ersten Mal MoveNext() aufgerufen und zurückgegeben falsewird.

Beachten Sie, dass diese Position nicht innerhalb der zugrunde liegenden Daten, sondern nur die Position dieses Cursors ist. Wenn eins beispielsweise eine Reihe paralleler Streamingcursor oder einen shuffled Cursor geöffnet hat, hätte jeder dieser Cursor den ersten gültigen Eintrag immer die Position 0.

Schema

Ruft eine Schema, die Namen- und Typinformationen für Variablen (z. B. Spalten im ML.NET-Typsystem) bereitstellt, die in dieser Zeile gespeichert sind.

Methoden

Dispose()

Implementierung der Entsorgung. Anrufe Dispose(Boolean) mit true.

Dispose(Boolean)

Die Einwegmethode für das Einwegmuster. Diese Standardimplementierung führt nichts aus.

GetGetter<TValue>(DataViewSchema+Column)

Gibt einen Wert-Getter-Delegaten zurück, um den Wert des angegebenen columnWerts aus der Zeile abzurufen. Dies wird ausgelöst, wenn die Spalte in dieser Zeile nicht aktiv ist oder sich der Typ vom Typ TValue dieser Spalte unterscheidet.

GetIdGetter()

Ein Getter für einen 128-Bit-ID-Wert. Es ist üblich, dass Objekte mehrere DataViewRow Instanzen verwenden, um zu durchlaufen, was die gleichen Daten sein soll, z. B. in einem IDataView Cursorsatz, die gleichen Daten wie ein serieller Cursor, gerade partitioniert, und ein shuffled Cursor erzeugt dieselben Daten wie ein serieller Cursor oder einen anderen shuffled Cursor, nur geschrumpft. Die ID ist für Anwendungen vorhanden, die den Eintrag tatsächlich abgleichen müssen. Idealerweise sollte diese ID eindeutig sein, aber aus praktischen Gründen genügt es, wenn Kollisionen einfach extrem unwahrscheinlich sind.

Beachten Sie, dass diese ID zwar für mehrere Datenströme gemäß der oben genannten Semantik konsistent sein muss, jedoch nicht als Teil der Daten per se betrachtet wird. Um also das Beispiel einer Datenansicht speziell zu verwenden, muss eine einzelne Datenansicht konsistente IDs über alle Cursor hinweg rendern, aber es gibt keinen Vorschlag, dass die "gleichen" Daten in einer anderen Datenansicht (wie z. B. transformiert, zwischengespeichert, gespeichert oder was auch immer) angezeigt werden, dass die IDs zwischen den beiden verschiedenen Datenansichten eine erkennbare Beziehung haben würden.

IsColumnActive(DataViewSchema+Column)

Gibt zurück, ob die angegebene Spalte in dieser Zeile aktiv ist.

Gilt für: