Konvertieren von Datentypen (C#)

Konvertierungsmethoden ändern den Typ von Eingabeobjekten.

Konvertierungsvorgänge in LINQ-Abfragen sind in vielen Anwendungen nützlich. Nachstehend sind einige Beispiele aufgeführt:

Methoden

Die folgende Tabelle enthält die Standardabfrageoperator-Methoden, die Datentypumwandlungen ausführen.

Die Konvertierungsmethoden in dieser Tabelle, deren Namen mit „As“ beginnen, ändern den statischen Typ der Quellauflistung, listen ihn jedoch nicht auf. Die Methoden, deren Namen mit „To“ anfangen, listen die Quellauflistung auf und verschieben die Elemente in den entsprechenden Auflistungstyp.

Methodenname Beschreibung C#-Abfrageausdruckssyntax Weitere Informationen
AsEnumerable Gibt die Eingabe zurück, die als IEnumerable<T> festgelegt ist. Nicht zutreffend. Enumerable.AsEnumerable
AsQueryable Konvertiert eine (generische) IEnumerable-Methode in eine (generische) IQueryable-Methode. Nicht zutreffend. Queryable.AsQueryable
Typumwandlung Kopiert die Elemente einer Auflistung in einen bestimmten Typ. Verwenden Sie eine explizit typisierte Bereichsvariable. Zum Beispiel:

from string str in words
Enumerable.Cast

Queryable.Cast
OfType Filtert Werte, je nach ihrer Fähigkeit, die in einen angegebenen Typ umgewandelt werden sollen. Nicht zutreffend. Enumerable.OfType

Queryable.OfType
ToArray Konvertiert eine Auflistung in ein Array. Diese Methode erzwingt die Ausführung der Abfrage. Nicht zutreffend. Enumerable.ToArray
ToDictionary Fügt Elemente in eine Dictionary<TKey,TValue>-Methode ein, basierend auf einer Schlüsselauswahlfunktion. Diese Methode erzwingt die Ausführung der Abfrage. Nicht zutreffend. Enumerable.ToDictionary
ToList Konvertiert eine Auflistung in eine List<T>-Methode. Diese Methode erzwingt die Ausführung der Abfrage. Nicht zutreffend. Enumerable.ToList
ToLookup Fügt Elemente, basierend auf einer Schlüsselauswahlfunktion, in ein Lookup<TKey,TElement> (one-to-many Wörterbuch) ein. Diese Methode erzwingt die Ausführung der Abfrage. Nicht zutreffend. Enumerable.ToLookup

Beispiele für die Abfrageausdruckssyntax

Das folgende Codebeispiel verwendet eine explizit typisierte Bereichsvariable, um einen Typ vor dem Zugriff auf ein Element, das nur im Untertyp verfügbar ist, in einen Untertyp umzuwandeln.

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

System.Linq
Übersicht über Standardabfrageoperatoren (C#)
From-Klausel
LINQ-Abfrageausdrücke
Vorgehensweise: Abfragen von ArrayList mit LINQ (C#)