From-Klausel (Visual Basic)

Gibt eine oder mehrere Bereichsvariablen und eine Auflistung an, die abfraget.

Syntax

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

Bestandteile

Begriff Definition
element Erforderlich. Eine Bereichsvariable , die zum Iterieren durch die Elemente der Auflistung verwendet wird. Eine Bereichsvariable wird verwendet, um auf jedes Element des collection Abfrageelements zu verweisen, das durch die collectionAbfrage durchlaufen wird. Muss ein aufzählbarer Typ sein.
type Optional. Der element-Typ. Wenn keine type angegeben wird, wird der Typ von elementcollection.
collection Erforderlich. Bezieht sich auf die sammlung, die abgefragt werden soll. Muss ein aufzählbarer Typ sein.

Hinweise

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

Sie können mehrere Klauseln in einer Abfrage angeben, um mehrere From Sammlungen zu identifizieren, die verknüpft werden sollen. Wenn mehrere Sammlungen angegeben werden, werden sie unabhängig von ihnen iteriert, oder Sie können sie beitreten, wenn sie verknüpft sind. Sie können Sammlungen implizit mithilfe der Klausel oder explizit mithilfe der SelectJoin Klausel verknüpfen Group Join . Alternativ können Sie mehrere Bereichsvariablen und Auflistungen in einer einzelnen From Klausel angeben, wobei jede verwandte Bereichsvariable und Auflistung von den anderen durch ein Komma getrennt ist. Im folgenden Codebeispiel werden beide Syntaxoptionen für die From Klausel gezeigt.

' 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 Umfang einer Abfrage, die dem Umfang einer For Schleife ähnlich ist. 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. Im folgenden Beispiel wird beispielsweise eine geschachtelte From Klausel angezeigt, 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

Jede Klausel kann von From einer beliebigen Kombination zusätzlicher Abfrageklauseln gefolgt werden, um die Abfrage zu verfeinern. Sie können die Abfrage auf folgende Weise verfeinern:

  • Kombinieren Sie implizit mehrere Auflistungen mithilfe der und der Klauseln oder explizit mithilfe der FromSelect oder Group Join der Join Klauseln.

  • Verwenden Sie die Klausel, um das Where Abfrageergebnis zu filtern.

  • Sortieren Sie das Ergebnis mithilfe der Order By Klausel.

  • Gruppieren Sie ähnliche Ergebnisse zusammen, indem Sie die Group By Klausel verwenden.

  • Verwenden Sie die Aggregate Klausel, um Aggregatfunktionen zu identifizieren, um das gesamte Abfrageergebnis auszuwerten.

  • 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 mithilfe der Skip, TakeSkip Whileund Take While Klauseln zurückgegeben werden sollen.

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

Weitere Informationen