Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Указывает условие фильтрации для запроса.
Синтаксис
Where condition
Комплектующие
condition
Обязательное. Выражение, определяющее, включены ли значения текущего элемента в коллекцию выходных данных. Выражение должно оцениваться как Boolean значение, так и эквивалентное значению Boolean . Если условие оценивается True, элемент включается в результат запроса; в противном случае элемент исключается из результата запроса.
Замечания
Предложение Where позволяет фильтровать данные запроса, выбирая только элементы, соответствующие определенным критериям. Элементы, значения которых вызывают Where предложение для оценки True , включаются в результат запроса; другие элементы исключаются. Выражение, используемое в Where предложении, должно оцениваться как BooleanBooleanэквивалентное или равное ей, например целое число, которое вычисляется, False когда его значение равно нулю. Можно объединить несколько выражений Where в предложении с помощью логических операторов, таких как And, Or, AndAlso, OrElseIsи IsNot.
По умолчанию выражения запросов не оцениваются до тех пор, пока они не будут доступны, например, когда они привязаны к данным или выполняются в цикле For . В результате Where предложение не вычисляется до получения доступа к запросу. Если у вас есть значения, внешние для запроса, используемого в Where предложении, убедитесь, что соответствующее значение используется в Where предложении во время выполнения запроса. Дополнительные сведения о выполнении запросов см. в статье "Написание первого запроса LINQ".
Функции в Where предложении можно вызывать для выполнения вычисления или операции со значением из текущего элемента в коллекции. Вызов функции в Where предложении может привести к выполнению запроса немедленно, когда он определен вместо доступа. Дополнительные сведения о выполнении запросов см. в статье "Написание первого запроса LINQ".
Пример 1
Следующее выражение запроса использует 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
Пример 2
В следующем примере используются And и Or логические операторы в предложении Where .
Private Sub DisplayElements()
Dim elements As List(Of Element) = BuildList()
' Get a list of elements that have an atomic number from 12 to 14,
' or that have a name that ends in "r".
Dim subset = From theElement In elements
Where (theElement.AtomicNumber >= 12 And theElement.AtomicNumber < 15) _
Or theElement.Name.EndsWith("r")
Order By theElement.Name
For Each theElement In subset
Console.WriteLine(theElement.Name & " " & theElement.AtomicNumber)
Next
' Output:
' Aluminum 13
' Magnesium 12
' Silicon 14
' Sulfur 16
End Sub
Private Function BuildList() As List(Of Element)
Return New List(Of Element) From
{
{New Element With {.Name = "Sodium", .AtomicNumber = 11}},
{New Element With {.Name = "Magnesium", .AtomicNumber = 12}},
{New Element With {.Name = "Aluminum", .AtomicNumber = 13}},
{New Element With {.Name = "Silicon", .AtomicNumber = 14}},
{New Element With {.Name = "Phosphorous", .AtomicNumber = 15}},
{New Element With {.Name = "Sulfur", .AtomicNumber = 16}}
}
End Function
Public Class Element
Public Property Name As String
Public Property AtomicNumber As Integer
End Class