From-Klausel (Visual Basic)
Gibt eine oder mehrere Bereichsvariablen und eine abzufragende Auflistung an.
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Teile
Begriff |
Definition |
element |
Erforderlich.Eine Bereichsvariable, die zum Durchlaufen der Elemente der Auflistung verwendet wird.Eine Bereichsvariable wird verwendet, um auf jedes Member der collection zu verweisen, während die Abfrage die collection durchläuft.Sie muss einen Enumerable-Typ haben. |
type |
Optional.Der Typ von element.Wenn kein type angegeben ist, wird der Typ von element von collection abgeleitet. |
collection |
Erforderlich.Verweist auf die Auflistung, die abgefragt werden soll.Sie muss einen Enumerable-Typ haben. |
Hinweise
Die From-Klausel wird verwendet, um die Quelldaten einer Abfrage und die Variablen, die auf ein Element der Quellauflistung verweisen, anzugeben.Diese Variablen werden als Bereichsvariablen bezeichnet.Die From-Klausel ist für eine Abfrage notwendig. Davon ausgenommen sind Abfragen, bei denen durch Verwendung der Aggregate-Klausel angezeigt wird, dass nur aggregierte Ergebnisse zurückgegeben werden.Weitere Informationen finden Sie unter Aggregate-Klausel (Visual Basic).
In einer Abfrage können mehrere From-Klauseln angegeben werden, um anzugeben, dass mehrere Auflistungen verknüpft werden sollen.Wenn mehrere Auflistungen angegeben werden, werden sie unabhängig voneinander durchlaufen. Verwandte Auflistungen können auch verknüpft werden.Auflistungen können mit der Select-Klausel implizit und mit der Join-Klausel oder der Group Join-Klausel explizit verknüpft werden.Ebenso können mehrere Bereichsvariablen und Auflistungen in einer einzigen From-Klausel angegeben werden, indem jede verknüpfte Bereichsvariable und Auflistung von den anderen durch ein Komma getrennt wird.Im folgenden Codebeispiel werden beide Syntaxoptionen für die From-Klausel dargestellt.
' Multiple From clauses in a query.
Dim result = From var1 In collection1, var2 In collection2
' Equivalent syntax with a single From clause.
Dim result2 = From var1 In collection1
From var2 In collection2
Die From-Klausel definiert den Gültigkeitsbereich einer Abfrage. Dieser ähnelt dem Gültigkeitsbereich einer For-Schleife.Daher muss jede element-Bereichsvariable im Gültigkeitsbereich einer Abfrage einen eindeutigen Namen haben.Da mehrere From-Klauseln für eine Abfrage angegeben werden können, können nachfolgende From-Klauseln auf Bereichsvariablen in der From-Klausel oder auf Bereichsvariablen einer vorhergehenden From-Klausel verweisen.Im folgenden Beispiel wird eine geschachtelte From-Klausel gezeigt, in der die Auflistung in der zweiten Klausel auf einer Eigenschaft der Bereichsvariablen in der ersten Klausel basiert.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
Jeder From-Klausel kann eine beliebige Kombination weiterer Abfrageklauseln folgen, um die Abfrage zu verfeinern.Die Abfrage kann folgendermaßen verfeinert werden:
Kombination mehrerer Auflistungen: implizit mit From-Klauseln und Select-Klauseln oder explizit mit Join-Klauseln oder Group Join-Klauseln.
Verwendung der Where-Klausel zum Filtern des Abfrageergebnisses.
Sortieren des Ergebnisses mit der Order By-Klausel.
Gruppieren ähnlicher Ergebnisse mit der Group By-Klausel.
Verwendung der Aggregate-Klausel, um Aggregatfunktionen festzulegen, die für das gesamte Abfrageergebnis ausgewertet werden sollen.
Verwendung der Let-Klausel zur Einführung einer Iterationsvariable, deren Wert durch einen Ausdruck statt durch eine Auflistung festgelegt wird.
Verwendung der Distinct-Klausel zum Übergehen doppelter Abfrageergebnisse.
Verwendung der Klauseln Skip, Take, Skip While und Take While zur Festlegung von Teilen des Ergebnisses, die zurückgegeben werden sollen.
Beispiel
Der folgende Abfrageausdruck verwendet eine From-Klausel zum Deklarieren einer Bereichsvariablen cust für jedes Customer-Objekt in der customers-Auflistung.Die Where-Klausel verwendet die Bereichsvariable, um die Ausgabe auf Kunden aus der angegebenen Region einzuschränken.Die For Each-Schleife zeigt den Namen des Unternehmens für jeden Kunden im Abfrageergebnis an.
Sub DisplayCustomersForRegion(ByVal customers As List(Of Customer),
ByVal region As String)
Dim customersForRegion = From cust In customers
Where cust.Region = region
For Each cust In customersForRegion
Console.WriteLine(cust.CompanyName)
Next
End Sub
Siehe auch
Referenz
For Each...Next-Anweisung (Visual Basic)
For...Next-Anweisung (Visual Basic)
Aggregate-Klausel (Visual Basic)
Distinct-Klausel (Visual Basic)
Group Join-Klausel (Visual Basic)
ORDER BY-Klausel (Visual Basic)
Skip While-Klausel (Visual Basic)
Take While-Klausel (Visual Basic)
Konzepte
Einführung in LINQ in Visual Basic