Dela via


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:

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

Se även