次の方法で共有


DataViewRowCursor クラス

定義

の行をカーソルで移動するために使用される IDataViewクラスです。

public abstract class DataViewRowCursor : Microsoft.ML.DataViewRow
type DataViewRowCursor = class
    inherit DataViewRow
Public MustInherit Class DataViewRowCursor
Inherits DataViewRow
継承
DataViewRowCursor

注釈

これはまた DataViewRow、 . 次 Position の値でインクリメントされます MoveNext()。 、または戻り値の後の最初のMoveNext()呼び出しの前MoveNext()に、Position次のfalse値を指定します-1。 それ以外の場合は、戻りtrue値が MoveNext()Position>= 0 です。

コンストラクター

DataViewRowCursor()

の行をカーソルで移動するために使用される IDataViewクラスです。

プロパティ

Batch

これは、一般的 GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random)に生成された複数の行を調整するための手段を提供します。 セットを取得するときは、並列処理を続行できる一方で、元の順序を回復可能にするという目標を常に持つ必要があります。 ユーザーが特定のアプリケーションでその元の順序を気にするかどうかは完全に別の話です(実用的な問題としてこのほとんどの呼び出し元は呼び出しません。そうでない場合は呼び出しません)が、少なくとも原則的には、同じように構成された GetRowCursor(IEnumerable<DataViewSchema.Column>, Random)元の順序から取得される元の順序を再構築することが可能である必要があります。 したがって、カーソルの実装では、バッチ番号は減少しない必要があります。 さらに、指定されたバッチ番号は、返される GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random)カーソルの 1 つだけに表示されます。 このようにして、順序はバッチ番号によって決定されます。 これらのカーソルを調整して一貫性のある 1 つのカーソルを生成する操作は、使用可能な最小のバッチ番号を持つセット内のすべてのカーソルの間で、1 つのカーソルから描画することで行うことができます。

一貫性を除き、特定のエントリのバッチがカーソル位置からカーソル位置まで一貫していることを示す提案はないため、全体的な順序は同じになることに注意してください。 同じエントリに、カーソルを置くバッチ番号が異なる場合があります。 また、指定されたバッチ番号を表示する必要があるという要件はまったくありません。 これは、データの任意のパーティション分割から順序を回復するためのメカニズムにすぎません。 また、当然ながら、バッチをデータのプロパティと見なしても完全に無効です。

(継承元 DataViewRow)
Position

これは、基になるコンテンツが変更されたときにインクリメントされ、クライアントに変更を検出する方法が提供されます。 オブジェクトが値をフェッチできない状態の場合は -1 にする必要があります。 特に、最初DataViewRowCursorに呼び出された場合、または初MoveNext()めて呼び出されて返falseされた後に、これはMoveNext()前になります。

この位置は基になるデータ内の位置ではなく、このカーソルの位置のみであることに注意してください。 たとえば、並列ストリーミング カーソルのセットやシャッフル カーソルを開いた場合、このようなカーソルの最初の有効なエントリは常に位置 0 になります。

(継承元 DataViewRow)
Schema

この行に Schema格納されている変数 (ML.NET の型システムの列) の名前と型情報を提供する 、値を取得します。

(継承元 DataViewRow)

メソッド

Dispose()

dispose の実装。 を使用したtrue呼び出しDispose(Boolean)

(継承元 DataViewRow)
Dispose(Boolean)

使い捨てパターンの使い捨て方法。 この既定の実装では何も行われません。

(継承元 DataViewRow)
GetGetter<TValue>(DataViewSchema+Column)

指定された 、行から値をフェッチする値 columnゲッター デリゲートを返します。 この行で列がアクティブでない場合、または型がこの列の型 TValue と異なる場合はスローされます。

(継承元 DataViewRow)
GetIdGetter()

128 ビット ID 値のゲッター。 オブジェクトが複数 DataViewRow のインスタンスにサービスを提供して、同じデータであるはずのデータを反復処理するのが一般的です。たとえば、カーソル セットでは IDataView 、シリアル カーソルと同じデータが生成され、パーティション分割され、シャッフルされたカーソルはシリアル カーソルまたは他のシャッフルされたカーソルと同じデータを生成します。 シャッフルのみ。 ID は、どのエントリが実際にどのエントリであるかを調整する必要があるアプリケーションに存在します。 理想的には、この ID は一意である必要がありますが、実際上の理由から、衝突が非常に不可能であれば十分です。

この ID は、上記のセマンティクスに従って複数のストリームに対して一貫性が必要ですが、それ自体はデータの一部とは見なされないことに注意してください。 したがって、データ ビューの例を具体的に見ると、1 つのデータ ビューですべてのカーソルに一貫性のある ID をレンダリングする必要がありますが、"同じ" データが別のデータ ビューに表示された場合 (たとえば、変換、キャッシュ、保存、または何らかの方法で)、2 つの異なるデータ ビュー間の ID には識別可能な関係があることをまったく提案しません。

(継承元 DataViewRow)
IsColumnActive(DataViewSchema+Column)

指定された列がこの行でアクティブかどうかを返します。

(継承元 DataViewRow)
MoveNext()

次の行に進みます。 カーソルが最初に作成されたら、このメソッドを呼び出して最初の行に移動する必要があります。 falseこれ以上行がない場合に返します。

適用対象