From – klauzule (Visual Basic)
Určuje jednu nebo více proměnných rozsahu a kolekci pro dotazování.
Syntaxe
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Součástky
Pojem | definice |
---|---|
element |
Povinný: Proměnná rozsahu použitá k iteraci prvky kolekce. Proměnná rozsahu se používá k odkazování na každého člena collection dotazu iteruje přes collection . Musí být výčtový typ. |
type |
Nepovinné. Typ .element Pokud není zadána žádná type hodnota, typ element je odvozen z collection . |
collection |
Povinný: Odkazuje na kolekci, která se má dotazovat. Musí být výčtový typ. |
Poznámky
Klauzule From
slouží k identifikaci zdrojových dat pro dotaz a proměnných, které slouží k odkazování na prvek ze zdrojové kolekce. Tyto proměnné se nazývají proměnné rozsahu. Klauzule From
se vyžaduje pro dotaz, s výjimkou případů, kdy Aggregate
se klauzule používá k identifikaci dotazu, který vrací pouze agregované výsledky. Další informace najdete v tématu Agregační klauzule.
V dotazu můžete zadat více From
klauzulí, které identifikují více kolekcí, které se mají spojit. Pokud je zadáno více kolekcí, jsou iterated nezávisle, nebo je můžete spojit, pokud jsou související. Kolekce můžete implicitně spojit pomocí Select
klauzule nebo explicitně pomocí Join
Group Join
těchto klauzulí. Jako alternativu můžete v jedné From
klauzuli zadat více proměnných rozsahu a kolekcí, přičemž každá související proměnná rozsahu a kolekce oddělená od ostatních čárkami. Následující příklad kódu ukazuje obě možnosti syntaxe klauzule From
.
' 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
Klauzule From
definuje rozsah dotazu, který se podobá oboru For
smyčky. element
Každá proměnná rozsahu v oboru dotazu proto musí mít jedinečný název. Vzhledem k tomu, že pro dotaz můžete zadat více From
klauzulí, můžou následující From
klauzule odkazovat na proměnné rozsahu v From
klauzuli nebo mohou odkazovat na proměnné rozsahu v předchozí From
klauzuli. Následující příklad například ukazuje vnořenou From
klauzuli, kde kolekce v druhé klauzuli je založená na vlastnosti proměnné rozsahu v první klauzuli.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
Za každou From
klauzulí může následovat libovolná kombinace dalších klauzulí dotazu, které dotaz upřesní. Dotaz můžete upřesnit následujícími způsoby:
Zkombinujte více kolekcí implicitně pomocí
From
klauzulí aSelect
klauzulí nebo explicitně pomocíGroup Join
Join
těchto klauzulí.Where
Pomocí klauzule můžete filtrovat výsledek dotazu.Seřaďte výsledek pomocí
Order By
klauzule.Seskupte podobné výsledky pomocí
Group By
klauzule.Klauzule
Aggregate
slouží k identifikaci agregačních funkcí k vyhodnocení celého výsledku dotazu.Klauzule
Let
slouží k zavedení proměnné iterace, jejíž hodnota je určena výrazem místo kolekce.Distinct
Pomocí klauzule můžete ignorovat duplicitní výsledky dotazu.Identifikujte části výsledku, které se mají vrátit, pomocí
Skip
klauzulí ,Take
Skip While
, aTake While
klauzulí.
Příklad
Následující výraz dotazu používá From
klauzuli k deklaraci proměnné cust
rozsahu pro každý Customer
objekt v kolekci customers
. Klauzule Where
používá proměnnou rozsahu k omezení výstupu pro zákazníky ze zadané oblasti. Smyčka For Each
zobrazí název společnosti pro každého zákazníka ve výsledku dotazu.
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