Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Określa warunek filtrowania zapytania.
Składnia
Where condition
Części
condition
To jest wymagane. Wyrażenie określające, czy wartości bieżącego elementu w kolekcji znajdują się w kolekcji wyjściowej. Wyrażenie musi mieć wartość Boolean lub odpowiednik Boolean wartości. Jeśli warunek zwróci wartość True, element zostanie uwzględniony w wyniku zapytania. W przeciwnym razie element zostanie wykluczony z wyniku zapytania.
Uwagi
Klauzula Where umożliwia filtrowanie danych zapytań, wybierając tylko elementy spełniające określone kryteria. Elementy, których wartości powodują, że klauzula Where ma zostać obliczona True , są uwzględniane w wyniku zapytania; inne elementy są wykluczone. Wyrażenie, które jest używane w Where klauzuli, musi obliczyć wartość lub Boolean odpowiednik elementu Boolean, takiego jak liczba całkowita, która daje w wyniku, False gdy jego wartość jest równa zero. Można połączyć wiele wyrażeń w klauzuli Where przy użyciu operatorów logicznych, takich jak And, , OrAndAlso, OrElse, Is, i IsNot.
Domyślnie wyrażenia zapytań nie są oceniane do momentu uzyskania do nich dostępu — na przykład gdy są powiązane z danymi lub iterowane w For pętli. W związku z tym klauzula Where nie jest oceniana do momentu uzyskania dostępu do zapytania. Jeśli masz wartości zewnętrzne dla zapytania, które są używane w Where klauzuli , upewnij się, że odpowiednia wartość jest używana w Where klauzuli podczas wykonywania zapytania. Aby uzyskać więcej informacji na temat wykonywania zapytań, zobacz Pisanie pierwszego zapytania LINQ.
Funkcje w Where klauzuli można wywołać, aby wykonać obliczenia lub operację na wartości z bieżącego elementu w kolekcji. Wywołanie funkcji w klauzuli Where może spowodować natychmiastowe wykonanie zapytania, gdy jest zdefiniowane zamiast, gdy jest uzyskiwany dostęp. Aby uzyskać więcej informacji na temat wykonywania zapytań, zobacz Pisanie pierwszego zapytania LINQ.
Przykład 1
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
Przykład 2
W poniższym przykładzie użyto And operatorów logicznych i Or w klauzuli 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