From — Klauzula (Visual Basic)
Określa co najmniej jedną zmienną zakresu i kolekcję do wykonywania zapytań.
Składnia
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
generatora
Termin | Definicja |
---|---|
element |
Wymagany. Zmienna zakresu używana do iterowania elementów kolekcji. Zmienna zakresu służy do odwoływania się do każdego elementu członkowskiego collection obiektu jako zapytania iteruje za pośrednictwem elementu collection . Musi być typem wyliczalnym. |
type |
Opcjonalny. Typ .element Jeśli nie type zostanie określony, typ element jest wywnioskowany z collection . |
collection |
Wymagany. Odwołuje się do kolekcji do odpytywania. Musi być typem wyliczalnym. |
Uwagi
Klauzula From
służy do identyfikowania danych źródłowych zapytania i zmiennych używanych do odwoływania się do elementu z kolekcji źródłowej. Te zmienne są nazywane zmiennymi zakresu. Klauzula jest wymagana From
dla zapytania, z wyjątkiem sytuacji, gdy Aggregate
klauzula jest używana do identyfikowania zapytania zwracającego tylko zagregowane wyniki. Aby uzyskać więcej informacji, zobacz Agregacja klauzuli.
W zapytaniu można określić wiele From
klauzul, aby zidentyfikować wiele kolekcji do sprzężenia. Po określeniu wielu kolekcji są iterowane niezależnie lub można je dołączyć, jeśli są powiązane. Kolekcje można łączyć niejawnie przy użyciu Select
klauzuli lub jawnie przy użyciu Join
klauzuli or Group Join
. Alternatywnie można określić wiele zmiennych i kolekcji zakresu w jednej From
klauzuli, z każdą powiązaną zmienną zakresu i kolekcją oddzieloną od innych przecinkami. Poniższy przykład kodu przedstawia obie opcje składni dla klauzuli 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
Klauzula From
definiuje zakres zapytania, który jest podobny do zakresu For
pętli. W związku z tym każda element
zmienna zakresu w zakresie zapytania musi mieć unikatową nazwę. Ponieważ można określić wiele From
klauzul dla zapytania, kolejne From
klauzule mogą odwoływać się do zmiennych zakresu w From
klauzuli lub odwoływać się do zmiennych zakresu w poprzedniej From
klauzuli. Na przykład w poniższym przykładzie przedstawiono klauzulę zagnieżdżona From
, w której kolekcja w drugiej klauzuli jest oparta na właściwości zmiennej zakresu w pierwszej klauzuli.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
Po każdej From
klauzuli można zastosować dowolną kombinację dodatkowych klauzul zapytania w celu uściślenia zapytania. Zapytanie można uściślić w następujący sposób:
Połącz wiele kolekcji niejawnie przy użyciu
From
klauzul iSelect
lub jawnie przy użyciuJoin
klauzul orGroup Join
.Użyj klauzuli
Where
, aby filtrować wynik zapytania.Posortuj wynik przy użyciu klauzuli
Order By
.Grupuj podobne wyniki razem przy użyciu klauzuli
Group By
.Użyj klauzuli ,
Aggregate
aby zidentyfikować funkcje agregujące, aby ocenić cały wynik zapytania.Użyj klauzuli ,
Let
aby wprowadzić zmienną iteracji, której wartość jest określana przez wyrażenie zamiast kolekcji.Użyj klauzuli ,
Distinct
aby zignorować zduplikowane wyniki zapytania.Zidentyfikuj części wyniku, które mają być zwracane przy użyciu
Skip
klauzul ,Take
,Skip While
iTake While
.
Przykład
Poniższe wyrażenie zapytania używa klauzuli From
do deklarowania zmiennej cust
zakresu dla każdego Customer
obiektu w kolekcji customers
. Klauzula Where
używa zmiennej zakresu, aby ograniczyć dane wyjściowe do klientów z określonego regionu. Pętla For Each
wyświetla nazwę firmy dla każdego klienta w wyniku zapytania.
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
Zobacz też
- Zapytania
- Wprowadzenie do LINQ w Visual Basic
- For Each...Next, instrukcja
- For...Next, instrukcja
- Select, klauzula
- Where, klauzula
- Aggregate, klauzula
- Distinct, klauzula
- Join, klauzula
- Group Join, klauzula
- Order By, klauzula
- Let, klauzula
- Skip, klauzula
- Take, klauzula
- Skip While, klauzula
- Take While, klauzula