From Clause (Visual Basic)
Egy vagy több tartományváltozót és egy lekérdezésre szolgáló gyűjteményt határoz meg.
Syntax
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Részek
Időszak | Definíció |
---|---|
element |
Szükséges. A gyűjtemény elemein keresztüli iteráláshoz használt tartományváltozó . A tartományváltozó a lekérdezés minden tagjára collection hivatkozik, mivel a lekérdezés a collection . Számba vehető típusnak kell lennie. |
type |
Opcionális. A típus.element Ha nincs type megadva, a függvény a következőből element collection következtet: . |
collection |
Szükséges. A lekérdezendő gyűjteményre hivatkozik. Számba vehető típusnak kell lennie. |
Megjegyzések
A From
záradék a lekérdezés forrásadatainak és a forrásgyűjtemény egy elemére való hivatkozáshoz használt változók azonosítására szolgál. Ezeket a változókat tartományváltozóknak nevezzük. A From
záradék egy lekérdezéshez szükséges, kivéve, ha a Aggregate
záradék egy olyan lekérdezés azonosítására szolgál, amely csak összesített eredményeket ad vissza. További információ: Összesítési záradék.
Egy lekérdezésben több From
záradékot is megadhat, így több összekapcsolandó gyűjteményt is azonosíthat. Ha több gyűjtemény van megadva, azok egymástól függetlenül lesznek iterálva, vagy összekapcsolhatja őket, ha kapcsolódnak hozzájuk. A gyűjteményeket implicit módon is összekapcsolhatja a Select
záradék használatával, vagy explicit módon a Join
záradékok vagy Group Join
záradékok használatával. Alternatív megoldásként több tartományváltozót és gyűjteményt is megadhat egyetlen From
záradékban, az egyes kapcsolódó tartományváltozók és gyűjtemények vesszővel elválasztva a többitől. Az alábbi példakód a záradék mindkét szintaxisbeállítását From
mutatja be.
' 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
A From
záradék egy lekérdezés hatókörét határozza meg, amely hasonló a ciklus hatóköréhez For
. Ezért a lekérdezés hatókörének minden element
tartományváltozójának egyedi névvel kell rendelkeznie. Mivel egy lekérdezéshez több From
záradékot is megadhat, a későbbi From
záradékok hivatkozhatnak a From
záradék tartományváltozóira, vagy hivatkozhatnak az előző From
záradék tartományváltozóira. Az alábbi példa például egy beágyazott From
záradékot mutat be, amelyben a második záradékban lévő gyűjtemény az első záradék tartományváltozójának tulajdonságán alapul.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
Minden From
záradékot a lekérdezés finomításához további lekérdezési záradékok bármilyen kombinációja követhet. A lekérdezést a következő módokon pontosíthatja:
Több gyűjteményt implicit módon kombinálhat a záradékok és
Select
aFrom
záradékok használatával, vagy explicit módon a vagyGroup Join
záradékokJoin
használatával.Where
A záradék használatával szűrheti a lekérdezés eredményét.Rendezze az eredményt a
Order By
záradék használatával.Csoportosítsa a hasonló eredményeket a
Group By
záradék használatával.A záradék segítségével azonosíthatja az
Aggregate
összesítő függvényeket a teljes lekérdezés eredményének kiértékeléséhez.Let
A záradék használatával olyan iterációs változót vezet be, amelynek értékét gyűjtemény helyett kifejezés határozza meg.Distinct
A záradék használatával figyelmen kívül hagyhatja az ismétlődő lekérdezési eredményeket.Azonosítsa az eredmény azon részeit, amelyeket vissza szeretne adni a
Skip
,Take
,Skip While
ésTake While
záradékok használatával.
Példa
Az alábbi lekérdezési kifejezés egy záradékkal From
deklarál egy tartományváltozót cust
a customers
gyűjtemény minden Customer
objektumához. A Where
záradék a tartományváltozó használatával korlátozza a kimenetet a megadott régióból származó ügyfelek számára. A For Each
hurok megjeleníti az egyes ügyfelek cégnevét a lekérdezés eredményében.
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
Lásd még
- Lekérdezések
- A LINQ bemutatása a Visual Basicben
- Mindegyikhez... Következő utasítás
- A... Következő utasítás
- Záradék kiválasztása
- Hol található záradék
- Összesítő záradék
- Eltérő záradék
- Csatlakozási záradék
- Csoportbeillesztési záradék
- Rendelés záradék szerint
- Let Záradék
- Záradék kihagyása
- Záradék átvétele
- Kihagyás záradék közben
- Take While Clause