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ů:
Metodu Enumerable.AsEnumerable lze použít ke skrytí vlastní implementace typu standardního operátoru dotazu.
Tuto Enumerable.OfType metodu lze použít k povolení neparametrizovaných kolekcí pro dotazování LINQ.
Metodu Enumerable.ToArray, , Enumerable.ToDictionaryEnumerable.ToLista Enumerable.ToLookup lze použít k vynucení okamžitého spuštění dotazu namísto odložení, dokud dotaz nebude výčtu.
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