Share via


Van component (Visual Basic)

Hiermee geeft u een of meer bereikvariabelen en een verzameling om een query uit te voeren.

Syntaxis

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

generator

Term Definitie
element Vereist. Een bereikvariabele die wordt gebruikt om de elementen van de verzameling te herhalen. Een bereikvariabele wordt gebruikt om naar elk lid van de collection variabele te verwijzen als de query doorloopt.collection Moet een opsommingstype zijn.
type Optioneel. Het type element. Als er geen type is opgegeven, wordt het type element afgeleid van collection.
collection Vereist. Verwijst naar de verzameling die moet worden opgevraagd. Moet een opsommingstype zijn.

Opmerkingen

De From component wordt gebruikt om de brongegevens voor een query te identificeren en de variabelen die worden gebruikt om te verwijzen naar een element uit de bronverzameling. Deze variabelen worden bereikvariabelen genoemd. De From component is vereist voor een query, behalve wanneer de Aggregate component wordt gebruikt om een query te identificeren die alleen geaggregeerde resultaten retourneert. Zie Aggregaatcomponent voor meer informatie.

U kunt meerdere From componenten in een query opgeven om meerdere verzamelingen te identificeren die moeten worden gekoppeld. Wanneer er meerdere verzamelingen zijn opgegeven, worden ze afzonderlijk ge curseerd of kunt u ze samenvoegen als ze gerelateerd zijn. U kunt verzamelingen impliciet samenvoegen met behulp van de Select component of expliciet met behulp van de Join of Group Join componenten. Als alternatief kunt u meerdere bereikvariabelen en verzamelingen in één From component opgeven, waarbij elke gerelateerde bereikvariabele en verzameling gescheiden zijn van de andere door een komma. In het volgende codevoorbeeld ziet u beide syntaxisopties voor de From component.

' 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

De From component definieert het bereik van een query, wat vergelijkbaar is met het bereik van een For lus. Daarom moet elke element bereikvariabele in het bereik van een query een unieke naam hebben. Omdat u meerdere From componenten voor een query kunt opgeven, kunnen volgende From componenten verwijzen naar bereikvariabelen in de From component of kunnen ze verwijzen naar bereikvariabelen in een vorige From component. In het volgende voorbeeld ziet u bijvoorbeeld een geneste component waarin de verzameling in de tweede component is gebaseerd op een eigenschap van de bereikvariabele From in de eerste component.

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

Elke From component kan worden gevolgd door elke combinatie van aanvullende querycomponenten om de query te verfijnen. U kunt de query op de volgende manieren verfijnen:

  • Combineer meerdere verzamelingen impliciet met behulp van de From en Select componenten, of expliciet met behulp van de Join of Group Join componenten.

  • Gebruik de Where component om het queryresultaat te filteren.

  • Sorteer het resultaat met behulp van de Order By component.

  • Groepeer vergelijkbare resultaten samen met behulp van de Group By component.

  • Gebruik de Aggregate component om statistische functies te identificeren die moeten worden geëvalueerd voor het hele queryresultaat.

  • Gebruik de Let component om een iteratievariabele te introduceren waarvan de waarde wordt bepaald door een expressie in plaats van een verzameling.

  • Gebruik de Distinct component om dubbele queryresultaten te negeren.

  • Onderdelen van het resultaat identificeren die moeten worden geretourneerd met behulp van de Skip, Takeen Skip WhileTake While componenten.

Opmerking

In de volgende query-expressie wordt een From component gebruikt om een bereikvariabele cust te declareren voor elk Customer object in de customers verzameling. De Where component maakt gebruik van de bereikvariabele om de uitvoer te beperken tot klanten uit de opgegeven regio. De For Each lus geeft de bedrijfsnaam weer voor elke klant in het queryresultaat.

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

Zie ook