Sdílet prostřednictvím


DataViewRowCursor Třída

Definice

Třída používaná k kurzoru mezi řádky IDataView.

public abstract class DataViewRowCursor : Microsoft.ML.DataViewRow
type DataViewRowCursor = class
    inherit DataViewRow
Public MustInherit Class DataViewRowCursor
Inherits DataViewRow
Dědičnost
DataViewRowCursor

Poznámky

Všimněte si, že to je také DataViewRow. Zvýší se Position o MoveNext()hodnotu . Před prvním voláním nebo MoveNext()po MoveNext() návratu falsePosition je -1. V opačném případě vrátí hodnotu MoveNext()true= Position>0.

Konstruktory

DataViewRowCursor()

Třída používaná k kurzoru mezi řádky IDataView.

Vlastnosti

Batch

To poskytuje způsob, jak shodovat více řádků, které byly vytvořeny obecně z GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random). Při získávání sady je potřeba a současně umožnit paralelní zpracování pokračovat, vždy mít cíl, že původní objednávka by měla být obnovitelná. Všimněte si, zda se uživatel stará o původní pořadí v jedné konkrétní aplikaci, je zcela jiný příběh (většina volajících to není praktické, jinak by ho nezavolali), ale alespoň v zásadě by mělo být možné rekonstruovat původní pořadí, které by získal z identicky nakonfigurovaného GetRowCursor(IEnumerable<DataViewSchema.Column>, Random). Takže: pro libovolnou implementaci kurzoru by měla být čísla dávek nespadající. Kromě toho by se každé dané číslo dávky mělo objevit pouze v jednom z kurzorů, které GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random)vrátí . Tímto způsobem je pořadí určeno číslem dávky. Operace, která tyto kurzory odsouhlasí za účelem vytvoření konzistentního jediného kurzoru, může to udělat tak, že nakreslíte jeden kurzor mezi všemi kurzory v sadě, které má k dispozici nejmenší číslo dávky.

Všimněte si, že neexistuje žádný návrh, že dávky pro určitou položku budou konzistentní od kurzoru po kurzor, s výjimkou konzistence, což vede ke stejnému celkovému pořadí. Stejná položka může mít různá čísla dávek od jednoho kurzoru po jinou. Neexistuje také žádný požadavek, aby se vůbec zobrazovalo jakékoli číslo dávky. Je to pouze mechanismus pro obnovení pořadí z potenciálně libovolného dělení dat. Z toho samozřejmě vyplývá, že vzhledem k dávce jako vlastnosti dat je zcela neplatná.

(Zděděno od DataViewRow)
Position

To se zvýší, když se podkladový obsah změní, což klientům umožňuje zjistit změnu. Pokud je objekt ve stavu, ve kterém nelze načíst hodnoty, musí být -1. Zejména pro DataViewRowCursor, to bude dříve MoveNext() , pokud kdy volána poprvé, nebo po prvním zavolání MoveNext() a vrátí false.

Všimněte si, že tato pozice není umístěná v podkladových datech, ale pouze na pozici tohoto kurzoru. Pokud jste například otevřeli sadu kurzorů paralelního streamování nebo přemíchaný kurzor, každá z nich by měla vždy pozici 0.

(Zděděno od DataViewRow)
Schema

SchemaZíská hodnotu , která poskytuje informace o názvu a typu pro proměnné (tj. sloupce v systému typů ML.NET) uložené v tomto řádku.

(Zděděno od DataViewRow)

Metody

Dispose()

Implementace vyřazení. Hovory Dispose(Boolean) s true.

(Zděděno od DataViewRow)
Dispose(Boolean)

Jednorázová metoda pro jednorázový vzor. Tato výchozí implementace nic nedělá.

(Zděděno od DataViewRow)
GetGetter<TValue>(DataViewSchema+Column)

Vrátí delegáta getter hodnoty pro načtení hodnoty dané columnhodnoty z řádku. To vyvolá, pokud sloupec není v tomto řádku aktivní nebo pokud se typ TValue liší od typu tohoto sloupce.

(Zděděno od DataViewRow)
GetIdGetter()

Getter pro hodnotu 128bitového ID. Je běžné, že objekty obsluhují více DataViewRow instancí, aby iterovaly to, co by mělo být stejná data, například v IDataView sadě kurzorů vytvoří stejná data jako sériový kurzor, jen dělený a prohazovaný kurzor vytvoří stejná data jako sériový kurzor nebo jakýkoli jiný zamíchaný kurzor. jen promíchal. ID existuje pro aplikace, které potřebují odsouhlasit, která položka je skutečně která. V ideálním případě by toto ID mělo být jedinečné, ale z praktických důvodů stačí, pokud jsou kolize prostě extrémně nepravděpodobná.

Všimněte si, že toto ID, i když musí být konzistentní pro více datových proudů podle sémantiky výše, se nepovažuje za součást dat za sekundu. Pokud tedy chcete použít příklad zobrazení dat konkrétně, musí jedno zobrazení dat vykreslit konzistentní ID napříč všemi kurzory, ale vůbec neexistuje žádný návrh, že pokud by se "stejná" data zobrazovala v jiném zobrazení dat (například transformována, uložena, uložena nebo libovolně), že ID mezi dvěma různými zobrazeními dat by měla jakýkoli rozpoznatelný vztah.

(Zděděno od DataViewRow)
IsColumnActive(DataViewSchema+Column)

Vrátí, zda je daný sloupec v tomto řádku aktivní.

(Zděděno od DataViewRow)
MoveNext()

Přejděte na další řádek. Při prvním vytvoření kurzoru by se tato metoda měla volat, aby se přesunula na první řádek. Vrátí se, false pokud neexistují žádné další řádky.

Platí pro