From-Klausel (Visual Basic)
Gibt eine oder mehrere Bereichsvariablen und eine Sammlung an, die abfragt werden soll
Syntax
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Bestandteile
Begriff | Definition |
---|---|
element |
Erforderlich. Eine Bereichsvariable für die Iteration durch die Elemente der Sammlung. Eine Bereichsvariable wird verwendet, um auf jedes Element des collection zu verweisen, während die Abfrage die collection durchläuft. Muss ein Enumerationstyp sein |
type |
Optional. Der element -Typ. Wenn kein type angegeben ist, wird der Typ von element aus der collection abgeleitet. |
collection |
Erforderlich. Gibt die Sammlung an, die abgefragt werden soll. Muss ein Enumerationstyp sein |
Bemerkungen
Die From
-Klausel wird zum Identifizieren der Quelldaten für eine Abfrage und der Variablen verwendet, die zum Verweisen auf ein Element aus der Quellsammlung genutzt werden. Diese Variablen werden Bereichsvariablen genannt. Die From
-Klausel ist für eine Abfrage erforderlich, es sei denn, die Aggregate
-Klausel zum Identifizieren einer Abfrage verwendet wird, die nur aggregierte Ergebnisse zurückgibt. Weitere Informationen finden Sie unter Aggregate-Klausel.
Sie können mehrere From
-Klauseln in einer Abfrage angeben, um mehrere zu verknüpfende Sammlungen zu identifizieren. Wenn mehrere Sammlungen angegeben werden, werden sie unabhängig durchlaufen, oder Sie können sie verknüpfen, wenn sie einen Zusammenhang aufweisen. Sie können Sammlungen implizit mithilfe der Select
-Klausel oder explizit mithilfe der Join
-Klausel oder der Group Join
-Klausel verknüpfen. Alternativ können Sie mehrere Bereichsvariablen und Sammlungen in einer einzelnen From
-Klausel angeben, wobei jede verwandte Bereichsvariable und Sammlung von den anderen durch ein Komma getrennt ist. Das folgende Codebeispiel zeigt beide Syntaxoptionen für die From
-Klausel.
' 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 Bereich einer Abfrage, der dem Bereich einer For
-Schleife ähnelt. Daher muss jede Bereichsvariable für element
im Bereich einer Abfrage einen eindeutigen Namen haben. Da Sie mehrere From
-Klauseln für eine Abfrage angeben können, können nachfolgende From
-Klauseln auf Bereichsvariablen in der From
-Klausel oder einer vorherigen From
-Klausel verweisen. Das folgende Beispiel zeigt eine geschachtelte From
-Klausel, bei der die Sammlung 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
Auf jede From
-Klausel kann eine beliebige Kombination zusätzlicher Abfrageklauseln folgen, um die Abfrage zu verfeinern. Zum Verfeinern der Abfrage stehen Ihnen folgende Methoden zur Verfügung:
Kombinieren Sie implizit mehrere Sammlungen mithilfe der
From
- undSelect
-Klauseln oder explizit mithilfe derJoin
- oderGroup Join
-Klauseln.Verwenden Sie die
Where
-Klausel, um das Abfrageergebnis zu filtern.Sortieren Sie das Ergebnis mithilfe der
Order By
-Klausel.Gruppieren Sie ähnliche Ergebnisse mithilfe der
Group By
-Klausel.Verwenden Sie die
Aggregate
-Klausel zum Identifizieren von Aggregatfunktionen, die für das gesamte Abfrageergebnis ausgewertet werden sollen.Verwenden Sie die
Let
-Klausel, um eine Iterationsvariable einzuführen, deren Wert durch einen Ausdruck anstelle einer Sammlung bestimmt wird.Verwenden Sie die
Distinct
-Klausel, um doppelte Abfrageergebnisse zu ignorieren.Identifizieren Sie die Teile des Ergebnisses, die zurückgegeben werden sollen, indem Sie die Klauseln
Skip
,Take
,Skip While
undTake While
verwenden.
Beispiel
Der folgende Abfrageausdruck verwendet eine From
-Klausel, um eine Bereichsvariable cust
für jedes Customer
-Objekt in der customers
-Sammlung zu deklarieren. Die Where
-Klausel verwendet die Bereichsvariable, um die Ausgabe an Kunden aus der angegebenen Region einzuschränken. Die For Each
-Schleife zeigt den Firmennamen 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