Z klauzule (Visual Basic)
Určuje jednu nebo více proměnných rozsah a kolekce do dotazu.
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Části
Termín |
Definice |
element |
Povinné.A Rozsah proměnné lze iterovat prvky v kolekci.Rozsah proměnné se používá k odkazování na každý člen collection jako projde dotaz collection.Musí být agregující typu. |
type |
Nepovinné.Typ element.Pokud ne type je zadán typ element je odvodit ze collection. |
collection |
Povinné.Odkazuje na kolekci dotazu.Musí být agregující typu. |
Poznámky
From Klauzule slouží k identifikaci zdroje dat pro dotaz a proměnných, které se používají k odkazu na prvek ze zdrojové kolekce.Tyto proměnné se nazývají Rozsah proměnné.From Klauzule je vyžadován pro dotaz, kromě případů, kdy Aggregate klauzule slouží k identifikaci dotaz vrátí pouze agregované výsledky.Další informace naleznete v tématu Agregační klauzule (Visual Basic).
Můžete určit více From klauzule dotazu určit více kolekcí, které mají být sloučeny.Po několik kolekcí musí tyto jsou vstupní přes nezávisle nebo je lze připojit, pokud souvisejí.Kolekce lze implicitně připojit pomocí Select klauzule, nebo explicitně pomocí Join nebo Group Join klauzule.Alternativně můžete zadat více rozsah proměnné a kolekce v jednom From klauzule s každou související rozsah proměnné a kolekce od ostatních oddělených čárkou.Následující příklad kódu ukazuje obě možnosti syntaxe From klauzule.
' 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
From Definuje klauzule dotazu, který je podobný rozsah působnosti For smyčky.Proto každý element rozsah proměnné v oboru dotazu musí mít jedinečný název.Protože můžete zadat více From klauzule dotazu následné From doložky mohou odkazovat na proměnné rozsah From klauzule nebo jim mohou odkazovat na proměnné rozsah v předchozí From klauzule.Například následující příklad ukazuje vnořené From klauzule, kde je kolekce v druhé základě vlastnosti proměnné rozsah v první klauzuli.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
Každý From klauzule mohou následovat libovolné další klauzule pro upřesnění dotazu.Dotaz lze upravit následujícími způsoby:
Kombinovat více kolekcí implicitně pomocí From a Select doložky, nebo explicitně pomocí Join nebo Group Join klauzule.
Použití Where klauzule filtrování výsledků dotazu.
Řazení výsledků pomocí Order By klauzule.
Seskupení podobných výsledků pomocí Group By klauzule.
Použití Aggregate klauzule identifikovat k vyhodnocení výsledku celé dotazu agregační funkce.
Použití Let klauzule zavést proměnnou iterace, jehož hodnota je určena výraz místo kolekce.
Použití Distinct klauzule ignorovat duplicitní výsledky.
Identifikovat částí výsledku vrátit pomocí Skip, Take, Skip While, a Take While klauzule.
Příklad
Následující dotaz používá výraz From klauzule rozsahu proměnné deklarovat cust pro každou Customer objektu v customers kolekce.Where Klauzule používá proměnná rozsah omezení výstupu zákazníkům ze stanovené pěstitelské oblasti.For Each Smyčky zobrazuje 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é
Referenční dokumentace
Pro každý...Další příkaz (Visual Basic)
Pro...Další příkaz (Visual Basic)
Vyberte klauzule (Visual Basic)
Agregační klauzule (Visual Basic)
Klauzule DISTINCT (Visual Basic)
Klauzule Join skupiny (Visual Basic)
Přeskočit klauzule (Visual Basic)
Přijmout klauzule (Visual Basic)
Přeskočit při klauzule (Visual Basic)
Přijmout při klauzule (Visual Basic)
Koncepty
Úvod do jazyka Visual Basic LINQ