Konvertera datatyper (Visual Basic)
Konverteringsmetoder ändrar typ av indataobjekt.
Konverteringsåtgärder i LINQ-frågor är användbara i en mängd olika program. Följande är några exempel:
Metoden Enumerable.AsEnumerable kan användas för att dölja en typs anpassade implementering av en standardfrågasoperator.
Metoden Enumerable.OfType kan användas för att aktivera icke-parametriserade samlingar för LINQ-frågor.
Metoderna Enumerable.ToArray, Enumerable.ToDictionary, Enumerable.ToListoch Enumerable.ToLookup kan användas för att framtvinga omedelbar frågekörning i stället för att skjuta upp den tills frågan räknas upp.
Metoder
I följande tabell visas de standardmetoder för frågeoperatorer som utför datatypkonverteringar.
Konverteringsmetoderna i den här tabellen vars namn börjar med "Som" ändrar den statiska typen av källsamling men räknar inte upp den. De metoder vars namn börjar med "Till" räknar upp källsamlingen och placerar objekten i motsvarande samlingstyp.
Metodnamn | beskrivning | Syntax för Visual Basic-frågeuttryck | Mer information |
---|---|---|---|
AsEnumerable | Returnerar indata som skrivits som IEnumerable<T>. | Ej tillämpbart. | Enumerable.AsEnumerable |
AsQueryable | Konverterar en (generisk) IEnumerable till en (generisk) IQueryable. | Ej tillämpbart. | Queryable.AsQueryable |
Cast | Omvandlar elementen i en samling till en angiven typ. | From … As … |
Enumerable.Cast Queryable.Cast |
OfType | Filtrerar värden, beroende på deras förmåga att omvandlas till en angiven typ. | Ej tillämpbart. | Enumerable.OfType Queryable.OfType |
ToArray | Konverterar en samling till en matris. Den här metoden tvingar fram frågekörning. | Ej tillämpbart. | Enumerable.ToArray |
ToDictionary | Placerar element i en Dictionary<TKey,TValue> baserad på en nyckelväljare. Den här metoden tvingar fram frågekörning. | Ej tillämpbart. | Enumerable.ToDictionary |
ToList | Konverterar en samling till en List<T>. Den här metoden tvingar fram frågekörning. | Ej tillämpbart. | Enumerable.ToList |
ToLookup | Placerar element i en Lookup<TKey,TElement> (en en-till-många-ordlista) baserat på en nyckelväljare. Den här metoden tvingar fram frågekörning. | Ej tillämpbart. | Enumerable.ToLookup |
Exempel på frågeuttryckssyntax
I följande kodexempel används From As
-satsen för att omvandla en typ till en undertyp innan du får åtkomst till en medlem som endast är tillgänglig för undertypen.
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