Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Konvertierungsmethoden ändern den Typ von Eingabeobjekten.
Konvertierungsvorgänge in LINQ-Abfragen sind in einer Vielzahl von Anwendungen nützlich. Im Folgenden finden Sie einige Beispiele:
Die Enumerable.AsEnumerable Methode kann verwendet werden, um die benutzerdefinierte Implementierung eines Standardabfrageoperators eines Typs auszublenden.
Die Enumerable.OfType Methode kann verwendet werden, um nicht parametrisierte Auflistungen für LINQ-Abfragen zu aktivieren.
Die Methoden Enumerable.ToArray, Enumerable.ToDictionary, Enumerable.ToList und Enumerable.ToLookup können verwendet werden, um die sofortige Abfrageausführung zu erzwingen, anstatt sie aufzuschieben, bis die Abfrage enumeriert wird.
Methodik
In der folgenden Tabelle sind die Standardmäßigen Abfrageoperatormethoden aufgeführt, die Datentypkonvertierungen ausführen.
Die Konvertierungsmethoden in dieser Tabelle, deren Namen mit "As" beginnen, ändern den statischen Typ der Quellauflistung, aufzählen sie jedoch nicht. Die Methoden, deren Namen mit "To" beginnen, aufzählen die Quellauflistung und setzen die Elemente in den entsprechenden Sammlungstyp.
Methodenname | BESCHREIBUNG | Syntax des Visual Basic-Abfrageausdrucks | Mehr Informationen |
---|---|---|---|
AsEnumerable | Gibt die Eingabe als IEnumerable<T> zurück. | Nicht zutreffend. | Enumerable.AsEnumerable |
AsQueryable | Konvertiert ein (generisches) IEnumerable zu einem (generischen) IQueryable. | Nicht zutreffend. | Queryable.AsQueryable |
Umwandeln | Kopiert die Elemente einer Auflistung in einen bestimmten Typ. | From … As … |
Enumerable.Cast Queryable.Cast |
OfType | Filtert Werte in Abhängigkeit davon, ob sie in einen angegebenen Typ konvertiert werden können. | Nicht zutreffend. | Enumerable.OfType Queryable.OfType |
ToArray | Konvertiert eine Auflistung in ein Array. Diese Methode erzwingt die Abfrageausführung. | Nicht zutreffend. | Enumerable.ToArray |
ToDictionary | Platziert Elemente in ein Dictionary<TKey,TValue> auf Grundlage einer Schlüsselauswahlfunktion. Diese Methode erzwingt die Abfrageausführung. | Nicht zutreffend. | Enumerable.ToDictionary |
ToList | Konvertiert eine Auflistung in eine List<T>. Diese Methode erzwingt die Abfrageausführung. | 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 Abfrageausführung. | Nicht zutreffend. | Enumerable.ToLookup |
Abfrageausdruckssyntax (Beispiel)
Im folgenden Codebeispiel wird die From As
Klausel verwendet, um einen Typ in einen Untertyp zu umwandeln, bevor auf ein Element zugegriffen wird, das nur für den 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