Предложение Where (Visual Basic)
Устанавливает условия фильтрации для запроса.
Where condition
Части
- condition
Обязательный. Выражение, определяющее, должны ли значения текущего элемента коллекции входить в выходную коллекцию. Выражение должно возвращать значение Boolean, либо эквивалент значения Boolean. Если условие имеет значение True, элемент будет включен в результат запроса; в противном случае элемент исключается из результата запроса.
Заметки
Предложение Where позволяет отфильтровать данные запроса, выбрав только элементы, удовлетворяющие определенным условиям. Элементы, значения которых делают предложение Where эквивалентным True, включаются в результат запроса; другие элементы исключаются. Выражение, которое используется в предложении Where, должно иметь значение Boolean или эквивалент Boolean, например Integer, значение которого равно False при значении переменной, равной нулю. Можно комбинировать несколько выражений в предложении Where с помощью логических операторов And, Or, AndAlso, OrElse, Is и IsNot.
По умолчанию, выражения запроса не вычисляются до тех пор, пока не становятся доступными, например когда они с привязываются к данным или итерируются в цикле For. В результате предложение Where не получает значение до тех пор, пока не осуществляется доступ к запросу. Если имеются значения, внешние по отношению к запросу, используемые в предложении Where, убедитесь, что в предложении Where соответствующее значение используется во время выполнения запроса. Дополнительные сведения о выполнении запроса см. в разделе Написание первого запроса LINQ (Visual Basic).
В предложении Where можно вызывать функции для выполнения вычислений или операций со значениями текущего элемента коллекции. Вызов функции в предложении Where может вызвать немедленное выполнение запроса при определении, а не при доступе. Дополнительные сведения о выполнении запроса см. в разделе Написание первого запроса LINQ (Visual Basic).
Пример
Следующее выражение запроса использует предложение 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
См. также
Ссылки
Предложение From (Visual Basic)
Предложение Select (Visual Basic)
Оператор For Each... Next (Visual Basic)
Основные понятия
Знакомство с LINQ в Visual Basic