Freigeben über


From-Klausel (Visual Basic)

Gibt eine oder mehrere Bereichsvariablen und eine abzufragende Auflistung an.

Syntax

From element [ As type ] In collection [ _ ]  
  [, element2 [ As type2 ] In collection2 [, ... ] ]  

Bestandteile

Begriff Definition
element Erforderlich. Eine Bereichsvariable , die zum Durchlaufen der Elemente der Auflistung verwendet wird. Eine Bereichsvariable wird verwendet, um auf jedes Element der collection Abfrage zu verweisen, während die Abfrage durch die collection. Muss ein aufzählbarer Typ sein.
type Wahlfrei. Der element-Typ. Wenn kein type Wert angegeben ist, wird der Typ von elementcollection.
collection Erforderlich. Bezieht sich auf die abzufragende Auflistung. Muss ein aufzählbarer Typ sein.

Bemerkungen

Die From Klausel wird verwendet, um die Quelldaten für eine Abfrage und die Variablen zu identifizieren, die verwendet werden, um auf ein Element aus der Quellauflistung zu verweisen. Diese Variablen werden als Bereichsvariablen bezeichnet. Die From Klausel ist für eine Abfrage erforderlich, außer wenn die Klausel verwendet wird, um eine Abfrage zu identifizieren, die Aggregate nur aggregierte Ergebnisse zurückgibt. Weitere Informationen finden Sie unter "Aggregate Clause".

Sie können mehrere From Klauseln in einer Abfrage angeben, um mehrere Auflistungen zu identifizieren, die verknüpft werden sollen. Wenn mehrere Auflistungen angegeben werden, werden sie unabhängig voneinander durchlaufen oder können verknüpft werden, wenn sie miteinander verknüpft sind. Sie können Sammlungen implizit mithilfe der Klausel oder explizit mithilfe der SelectJoin Klausel oder Group Join klauseln verbinden. Alternativ können Sie mehrere Bereichsvariablen und -auflistungen in einer einzelnen From Klausel angeben, wobei jede zugehörige Bereichsvariable und -auflistung durch ein Komma von den anderen 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 element Bereichsvariable 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 verweisen, oder sie können auf Bereichsvariablen in einer vorherigen From Klausel verweisen. Das folgende Beispiel zeigt beispielsweise eine geschachtelte From Klausel, 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

Auf jede From Klausel kann eine beliebige Kombination zusätzlicher Abfrageklauseln folgen, um die Abfrage zu verfeinern. Sie können die Abfrage auf folgende Weise verfeinern:

  • Kombinieren Sie mehrere Auflistungen implizit mithilfe der From Und-Klauseln Select oder explizit mithilfe der Join Oder-Klauseln Group Join .

  • 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, um Aggregatfunktionen zu identifizieren, 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 Auflistung bestimmt wird.

  • Verwenden Sie die Distinct Klausel, um doppelte Abfrageergebnisse zu ignorieren.

  • Identifizieren Sie Teile des Ergebnisses, die zurückgegeben werden sollen, indem Sie die SkipKlauseln , Take, Skip Whileund Take While die Klauseln verwenden.

Beispiel

Der folgende Abfrageausdruck verwendet eine Klausel, um eine From Bereichsvariable cust für jedes Customer Objekt in der customers Auflistung zu deklarieren. Die Where Klausel verwendet die Bereichsvariable, um die Ausgabe auf 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

Siehe auch