Предложение From (Visual Basic)
Указывает одну или несколько переменных диапазона и коллекцию для запроса.
Синтаксис
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Детали
Термин | Определение |
---|---|
element |
Обязательный. Переменная диапазона, используемая для итерации элементов коллекции. Переменная диапазона используется для ссылки на каждый член collection запроса в качестве итератора collection запроса. Должен быть перечисленным типом. |
type |
Необязательно. Тип параметра element . Если значение не type указано, тип element выводится из collection . |
collection |
Обязательный. Ссылается на коллекцию, запрашиваемую. Должен быть перечисленным типом. |
Замечания
Предложение From
используется для идентификации исходных данных для запроса и переменных, используемых для ссылки на элемент из исходной коллекции. Эти переменные называются переменными диапазона. Предложение From
требуется для запроса, за исключением случаев, когда Aggregate
предложение используется для идентификации запроса, возвращающего только агрегированные результаты. Дополнительные сведения см. в разделе "Агрегированное предложение".
В запросе можно указать несколько предложений, чтобы определить несколько From
коллекций, которые необходимо объединить. Если задано несколько коллекций, они итерируются независимо или можно присоединить их, если они связаны. Вы можете присоединять коллекции неявно с помощью Select
предложения или явным образом с помощью Join
предложений или Group Join
предложений. В качестве альтернативы можно указать несколько переменных диапазона и коллекций в одном From
предложении с каждой связанной переменной диапазона и коллекцией, отделенной от других запятыми. В следующем примере кода показаны оба варианта синтаксиса 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
Предложение From
определяет область запроса, аналогичного область For
цикла. Таким образом, каждая element
переменная диапазона в область запроса должна иметь уникальное имя. Так как можно указать несколько From
предложений для запроса, последующие From
предложения могут ссылаться на переменные диапазона в From
предложении или ссылаться на переменные диапазона в предыдущем From
предложении. Например, в следующем примере показано вложенное From
предложение, в котором коллекция во втором предложении основана на свойстве переменной диапазона в первом предложении.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
За каждым From
предложением можно следовать любое сочетание дополнительных предложений запросов для уточнения запроса. Запрос можно уточнить следующим образом:
Объединение нескольких коллекций неявно с помощью
From
предложений иSelect
предложений или явным образом с помощьюJoin
предложений илиGroup Join
предложений.Where
Используйте предложение для фильтрации результата запроса.Сортируйте результат с помощью
Order By
предложения.Группировать аналогичные результаты вместе с помощью
Group By
предложения.Aggregate
Используйте предложение, чтобы определить агрегатные функции для оценки всего результата запроса.Let
Используйте предложение, чтобы ввести переменную итерации, значение которой определяется выражением вместо коллекции.Distinct
Используйте предложение, чтобы игнорировать повторяющиеся результаты запроса.Определите части результата, возвращаемые с помощью
Skip
предложений ,Take
Skip While
иTake While
предложений.
Пример
Следующее выражение запроса использует From
предложение для объявления переменной cust
диапазона для каждого Customer
объекта в customers
коллекции. Предложение Where
использует переменную диапазона для ограничения выходных данных клиентам из указанного региона. В цикле For Each
отображается имя компании для каждого клиента в результате запроса.
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
См. также
- Запросы
- Знакомство с LINQ в Visual Basic
- Оператор For Each...Next
- Оператор For...Next
- Предложение Select
- Предложения Where
- Предложение Aggregate
- Предложение Distinct
- Предложение Join
- Предложение Group Join
- Предложение Order By
- Предложение Let
- Предложение Skip
- Предложение Take
- Предложение Skip While
- Предложение Take While