Konvertieren von Datentypen

Mit Konvertierungsmethoden wird der Typ von Eingabeobjekten geändert.

Konvertierungsoperationen in LINQ-Abfragen sind in einer Vielzahl von Anwendungen nützlich. Beispiele:

Methoden

In der folgenden Tabelle werden die Standardabfrageoperator-Methoden aufgelistet, die Datentypkonvertierungen ausführen.

Die Konvertierungsmethoden in dieser Tabelle, deren Namen mit "As" beginnen, sind statische Typen der Quellauflistung, listen diese aber nicht auf. Die Konvertierungsmethoden in dieser Tabelle, deren Namen mit "To" beginnen, listen die Quellauflistung auf und fügen die Elemente in den entsprechenden Auflistungstyp ein.

Methodenname

Beschreibung

C#-Abfrageausdruckssyntax

Visual Basic-Abfrageausdruckssyntax

Weitere Informationen

AsEnumerable

Gibt die Eingabe als IEnumerable<T> zurück.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.AsEnumerable<TSource>

AsQueryable

Konvertiert ein (generisches) IEnumerable in ein (generisches) IQueryable.

Nicht zutreffend.

Nicht zutreffend.

Queryable.AsQueryable

Typumwandlung

Wandelt die Elemente einer Auflistung in einen angegebenen Typ um.

Verwenden Sie eine explizit typisierte Bereichsvariable. Beispiel:

from string str in words

From … As …

Enumerable.Cast<TResult>

Queryable.Cast<TResult>

OfType

Filtert Werte danach, ob sie in einen angegebenen Typ umgewandelt werden können.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.OfType<TResult>

Queryable.OfType<TResult>

ToArray

Konvertiert eine Auflistung in ein Array. Diese Methode erzwingt die Ausführung der Abfrage.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.ToArray<TSource>

ToDictionary

Legt Elemente basierend auf einer Schlüsselauswahlfunktion in einem Dictionary<TKey, TValue> ab. Diese Methode erzwingt die Ausführung der Abfrage.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.ToDictionary

ToList

Konvertiert eine Auflistung in eine List<T>. Diese Methode erzwingt die Ausführung der Abfrage.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.ToList<TSource>

ToLookup

Fügt Elemente basierend auf einer Schlüsselauswahlfunktion in einen Lookup<TKey, TElement> (ein 1:n-Wörterbuch) ein. Diese Methode erzwingt die Ausführung der Abfrage.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.ToLookup

Beispiele von Abfrageausdruckssyntax

Im folgenden Beispiel wird eine explizit typisierte Bereichsvariable in C# oder die From As-Klausel in Visual Basic verwendet, um einen Typ in einen Untertyp umzuwandeln, bevor auf ein Member zugegriffen wird, das nur im Untertyp verfügbar ist.

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
class Plant
{
    public string Name { get; set; }
}

class CarnivorousPlant : Plant
{
    public string TrapType { get; set; }
}

static void Cast()
{
    Plant[] plants = new Plant[] {
        new CarnivorousPlant { Name = "Venus Fly Trap", TrapType = "Snap Trap" },
        new CarnivorousPlant { Name = "Pitcher Plant", TrapType = "Pitfall Trap" },
        new CarnivorousPlant { Name = "Sundew", TrapType = "Flypaper Trap" },
        new CarnivorousPlant { Name = "Waterwheel Plant", TrapType = "Snap Trap" }
    };

    var query = from CarnivorousPlant cPlant in plants
                where cPlant.TrapType == "Snap Trap"
                select cPlant;

    foreach (Plant plant in query)
        Console.WriteLine(plant.Name);

    /* This code produces the following output:

        Venus Fly Trap
        Waterwheel Plant
    */
}

Siehe auch

Aufgaben

Gewusst wie: Abfragen von ArrayList mit LINQ

Referenz

from-Klausel (C#-Referenz)

From-Klausel (Visual Basic)

System.Linq

Konzepte

Übersicht über Standardabfrageoperatoren

LINQ-Abfrageausdrücke (C#-Programmierhandbuch)