Where 子句 (Visual Basic)

指定查詢的篩選條件。

語法

Where condition  

組件

condition
必要。 決定集合中目前項目的值是否包含在輸出集合中的運算式。 運算式必須評估為 Boolean 值或 Boolean 值的對等項目。 如果條件評估為 True,則元素會包含在查詢結果中;否則,該元素會從查詢結果中排除。

備註

Where 子句可讓您僅選取符合特定準則的元素,來篩選查詢資料。 其值會使 Where 子句評估為 True 的元素會包含在查詢結果中;其他元素則會排除。 Where 子句中使用的運算式必須評估為 BooleanBoolean 的對等項目,例如當其值為零時評估為 False 的整數。 您可以使用如 AndOrAndAlsoOrElseIsIsNot 等邏輯運算子,來結合 Where 子句中的多個運算式。

根據預設,在存取查詢運算式之前不會評估這些運算式,例如,當運算式是資料繫結或在 For 迴圈中反覆運算時。 因此,在存取查詢之前,不會評估 Where 子句。 如果您在 Where 子句使用的值是在查詢的外部,則在執行該查詢時,請確保在 Where 子句中使用適當的值。 如需查詢執行的詳細資訊,請參閱撰寫第一個 LINQ 查詢

您可以在 Where 子句內呼叫函式,以對集合中目前元素的值執行計算或運算。 在 Where 子句中呼叫函數可能導致會在定義查詢時立即執行查詢,而非在存取查詢時。 如需查詢執行的詳細資訊,請參閱撰寫第一個 LINQ 查詢

範例 1

下列查詢運算式會使用 From 子句來宣告 customers 集合中每個 Customer 物件的範圍變數 custWhere 子句會使用範圍變數,將輸出限制為來自指定區域的客戶。 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

下列範例會在 Where 子句中使用 AndOr 邏輯運算子。

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

另請參閱