Konvertieren von Datentypen (Visual Basic)
Konvertierungsmethoden ändern den Typ von Eingabeobjekten.
Konvertierungsvorgänge in LINQ-Abfragen sind in vielen Anwendungen nützlich. Hier einige Beispiele:
Die Enumerable.AsEnumerable-Methode kann zum Ausblenden einer benutzerdefinierten Implementierung eines Standardabfrageoperators eines Typs verwendet werden.
Die Enumerable.OfType-Methode kann verwendet werden, um nicht parametrisierte Auflistungen für LINQ-Abfragen zu ermöglichen.
Die Methoden Enumerable.ToArray, Enumerable.ToDictionary, Enumerable.ToList und Enumerable.ToLookup können verwendet werden, um die sofortige Ausführung einer Abfrage zu erzwingen, statt sie zu verzögern, bis die Abfrage enumeriert wurde.
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 | Visual Basic-Abfrageausdruckssyntax | Weitere Informationen |
---|---|---|---|
AsEnumerable | Gibt die Eingabe als IEnumerable<T> typisiert zurück | Nicht zutreffend. | Enumerable.AsEnumerable |
AsQueryable | Konvertiert ein (generisches) IEnumerable-Element in ein (generisches) IQueryable-Element | Nicht zutreffend. | Queryable.AsQueryable |
Typumwandlung | Kopiert die Elemente einer Auflistung in einen bestimmten Typ. | From … As … |
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 | Platziert Elemente in ein Dictionary<TKey,TValue> auf Grundlage einer Schlüsselauswahlfunktion. Diese Methode erzwingt die Ausführung der Abfrage. | Nicht zutreffend. | Enumerable.ToDictionary |
ToList | Konvertiert eine Auflistung in eine List<T>. Diese Methode erzwingt die Ausführung der Abfrage. | Nicht zutreffend. | Enumerable.ToList |
ToLookup | Platziert 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 |
Beispiel für die Abfrageausdruckssyntax
Das folgende Codebeispiel verwendet die From As
-Klausel, um einen Typ vor dem Zugriff auf ein Element, das nur im Untertyp verfügbar ist, in einen Untertyp umzuwandeln.
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