Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Указывает одну или несколько переменных диапазона и коллекцию для запроса.
Синтаксис
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предложений ,TakeSkip 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
- Для каждого... Следующая инструкция
- Для... Следующая инструкция
- Выражение select
- Условие WHERE
- Агрегатное предложение
- Особый пункт
- Предложение Join
- Предложение "Присоединение к группе"
- Предложение Order By
- Предложение Let
- Пропустить пункт
- Условие о Приобретении
- Пропустить конструкцию 'while'
- Предложение "Принять в то время как"