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
ochSelect
eller explicit med hjälp av satsernaJoin
ellerGroup 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 While
ochTake 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