From-Klausel (Visual Basic)

Gibt eine oder mehrere Bereichsvariablen und eine abfragte Auflistung an.

Syntax

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

Bestandteile

Begriff Definition
element Erforderlich. Eine Bereichsvariable, die verwendet wird, um die Elemente der Auflistung zu iterieren. Eine Bereichsvariable wird verwendet, um auf jeden Member von zu verweisen, während die Abfrage collection durch den durchfingt. collection Muss ein aufzählbarer Typ sein.
type Optional. Der element-Typ. Wenn kein angegeben wird, wird der Typ von type element von collection abgeleitet.
collection Erforderlich. Bezieht sich auf die auflistung, die abgefragt werden soll. Muss ein aufzählbarer Typ sein.

Bemerkungen

Die -Klausel wird verwendet, um die Quelldaten für eine Abfrage und die Variablen zu identifizieren, die verwendet werden, um auf ein Element From aus der Quellsammlung zu verweisen. Diese Variablen werden als Bereichsvariablen bezeichnet. Die -Klausel ist für eine Abfrage erforderlich, außer wenn die -Klausel verwendet wird, um eine Abfrage zu identifizieren, From Aggregate 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 Sammlungen zu identifizieren, die verbunden werden sollen. Wenn mehrere Auflistungen angegeben werden, werden sie unabhängig voneinander durch iteriert, oder Sie können sie verbinden, wenn sie verknüpft sind. Sie können Auflistungen implizit mithilfe der -Klausel oder explizit mithilfe der - Select oder Join -Klauseln Group Join verbinden. Alternativ können Sie mehrere Bereichsvariablen und Auflistungen in einer einzelnen Klausel angeben, bei der jede verwandte Bereichsvariable und Sammlung durch ein Komma von den anderen From 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 Schleife For ähnelt. Daher muss jede element Bereichsvariable im Bereich einer Abfrage einen eindeutigen Namen haben. Da Sie mehrere Klauseln für eine Abfrage angeben können, können nachfolgende Klauseln auf Bereichsvariablen in der -Klausel oder auf Bereichsvariablen in einer From From From vorherigen Klausel From verweisen. Das folgende Beispiel zeigt beispielsweise eine geschachtelte Klausel, bei der die Auflistung in der zweiten Klausel auf einer Eigenschaft der Bereichsvariablen From in der ersten Klausel basiert.

Dim allOrders = From cust In GetCustomerList()
                From ord In cust.Orders
                Select ord

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

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

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

  • Sortieren Sie das Ergebnis mithilfe der Order By -Klausel.

  • Gruppen 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.

  • 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 Klauseln Take , , und Skip While zurückgeben Take While werden.

Beispiel

Der folgende Abfrageausdruck verwendet eine From -Klausel, um eine Bereichsvariable cust für jedes Objekt in der Auflistung zu Customer customers deklarieren. Die Where -Klausel verwendet die Bereichsvariable, um die Ausgabe auf Kunden aus der angegebenen Region zu beschränken. Die For Each Schleife zeigt den Unternehmensnamen 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