Dela via


Från-sats (Visual Basic)

Anger en eller flera intervallvariabler och en samling att fråga efter.

Syntax

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

Delar

Period Definition
element Obligatoriska. En intervallvariabel som används för att iterera genom elementen i samlingen. En intervallvariabel används för att referera till varje medlem i collection när frågan itererar genom collection. Måste vara en uppräkningsbar typ.
type Valfritt. Typen av element. Om nej type anges härleds typen av element från collection.
collection Obligatoriska. Refererar till samlingen som ska frågas. Måste vara en uppräkningsbar typ.

Kommentarer

Satsen From används för att identifiera källdata för en fråga och de variabler som används för att referera till ett element från källsamlingen. Dessa variabler kallas för intervallvariabler. From Satsen krävs för en fråga, förutom när Aggregate satsen används för att identifiera en fråga som endast returnerar aggregerade resultat. Mer information finns i aggregerad sats.

Du kan ange flera From satser i en fråga för att identifiera flera samlingar som ska kopplas. När flera samlingar anges itereras de oberoende av varandra, eller så kan du ansluta dem om de är relaterade. Du kan koppla samlingar implicit med hjälp Select av satsen eller explicit med hjälp av satserna Join eller Group Join . Alternativt kan du ange flera intervallvariabler och samlingar i en enda From sats, där varje relaterad intervallvariabel och samling separeras från de andra med kommatecken. I följande kodexempel visas båda syntaxalternativen From för -satsen.

' 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

Satsen From definierar omfånget för en fråga, vilket liknar omfånget för en For loop. Därför måste varje element intervallvariabel i frågans omfång ha ett unikt namn. Eftersom du kan ange flera From satser för en fråga kan efterföljande From satser referera till intervallvariabler i From -satsen, eller så kan de referera till intervallvariabler i en tidigare From sats. I följande exempel visas till exempel en kapslad sats From där samlingen i den andra satsen baseras på en egenskap för intervallvariabeln i den första satsen.

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

Varje From sats kan följas av valfri kombination av ytterligare frågesatser för att förfina frågan. Du kan förfina frågan på följande sätt:

  • Kombinera flera samlingar implicit med hjälp av satserna From och Select eller explicit med hjälp av satserna Join eller Group Join .

  • Where Använd -satsen för att filtrera frågeresultatet.

  • Sortera resultatet med hjälp Order By av -satsen.

  • Gruppera liknande resultat med hjälp Group By av -satsen.

  • Aggregate Använd -satsen för att identifiera mängdfunktioner som ska utvärderas för hela frågeresultatet.

  • Let Använd -satsen för att introducera en iterationsvariabel vars värde bestäms av ett uttryck i stället för en samling.

  • Distinct Använd -satsen för att ignorera duplicerade frågeresultat.

  • Identifiera delar av resultatet som ska returneras med hjälp av satserna Skip, Take, Skip Whileoch Take While .

Exempel

Följande frågeuttryck använder en From sats för att deklarera en intervallvariabel cust för varje Customer objekt i customers samlingen. Where Satsen använder intervallvariabeln för att begränsa utdata till kunder från den angivna regionen. Loopen For Each visar företagsnamnet för varje kund i frågeresultatet.

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

Se även