Sdílet prostřednictvím


Převod datových typů (Visual Basic)

Metody převodu mění typ vstupních objektů.

Operace převodu v dotazech LINQ jsou užitečné v různých aplikacích. Tady je několik příkladů:

Metody

Následující tabulka uvádí standardní metody operátoru dotazu, které provádějí převody datových typů.

Metody převodu v této tabulce, jejichž názvy začínají na "As", mění statický typ zdrojové kolekce, ale nevyčtou ji. Metody, jejichž názvy začínají na "To" výčet zdrojové kolekce a umístí položky do odpovídajícího typu kolekce.

Název metody Popis Syntaxe výrazů dotazu jazyka Visual Basic Další informace
AsEnumerable Vrátí zadaný vstup jako IEnumerable<T>. Nevztahuje se. Enumerable.AsEnumerable
AsQueryable Převede (obecný) IEnumerable na (obecný) IQueryable. Nevztahuje se. Queryable.AsQueryable
Změna typu Přetypuje prvky kolekce na zadaný typ. From … As … Enumerable.Cast

Queryable.Cast
Oftype Filtruje hodnoty v závislosti na jejich schopnosti přetypovat na zadaný typ. Nevztahuje se. Enumerable.OfType

Queryable.OfType
Toarray Převede kolekci na pole. Tato metoda vynutí provádění dotazů. Nevztahuje se. Enumerable.ToArray
Slovník Vloží elementy Dictionary<TKey,TValue> do funkce selektoru klíče. Tato metoda vynutí provádění dotazů. Nevztahuje se. Enumerable.ToDictionary
Tolist Převede kolekci na .List<T> Tato metoda vynutí provádění dotazů. Nevztahuje se. Enumerable.ToList
ToLookup Umístí prvky do slovníku Lookup<TKey,TElement> 1:N na základě funkce selektoru klíčů. Tato metoda vynutí provádění dotazů. Nevztahuje se. Enumerable.ToLookup

Příklad syntaxe výrazu dotazu

Následující příklad kódu používá From As klauzuli k přetypování typu na podtyp před přístupem k členu, který je k dispozici pouze na podtypu.

Class Plant
    Public Property Name As String
End Class

Class CarnivorousPlant
    Inherits Plant
    Public Property TrapType As String
End Class

Sub Cast()

    Dim plants() As Plant = {
        New CarnivorousPlant With {.Name = "Venus Fly Trap", .TrapType = "Snap Trap"},
        New CarnivorousPlant With {.Name = "Pitcher Plant", .TrapType = "Pitfall Trap"},
        New CarnivorousPlant With {.Name = "Sundew", .TrapType = "Flypaper Trap"},
        New CarnivorousPlant With {.Name = "Waterwheel Plant", .TrapType = "Snap Trap"}}

    Dim query = From plant As CarnivorousPlant In plants
                Where plant.TrapType = "Snap Trap"
                Select plant

    Dim sb As New System.Text.StringBuilder()
    For Each plant In query
        sb.AppendLine(plant.Name)
    Next

    ' Display the results.
    MsgBox(sb.ToString())

    ' This code produces the following output:

    ' Venus Fly Trap
    ' Waterwheel Plant

End Sub

Viz také