Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
| termín | 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 |
Volitelný. 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í JoinGroup 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í
Fromklauzulí aSelectklauzulí nebo explicitně pomocíGroup JoinJointěchto klauzulí.WherePomocí klauzule můžete filtrovat výsledek dotazu.Seřaďte výsledek pomocí
Order Byklauzule.Seskupte podobné výsledky pomocí
Group Byklauzule.Klauzule
Aggregateslouží k identifikaci agregačních funkcí k vyhodnocení celého výsledku dotazu.Klauzule
Letslouží k zavedení proměnné iterace, jejíž hodnota je určena výrazem místo kolekce.DistinctPomocí klauzule můžete ignorovat duplicitní výsledky dotazu.Identifikujte části výsledku, které se mají vrátit, pomocí
Skipklauzulí ,TakeSkip While, aTake Whileklauzulí.
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
Viz také
- Dotazy
- Úvod do LINQ v jazyce Visual Basic
- Pro každý...Další příkaz
- For...Next – příkaz
- Klauzule SELECT
- Klauzule Where
- Celková klauzule
- Jedinečná Klauzule
- Spojovací klauzule
- Klauzule Group Join
- Order By – klauzule
- Let – klauzule
- Skip – klauzule
- Take – klauzule
- Skip While – klauzule
- Klauzule Take While