共用方式為


Where 子句 (Visual Basic)

指定查詢的篩選條件。

Where condition

組件

  • condition
    必要項。 運算式,用於判斷集合中目前項目的值是否要納入輸出集合。 此運算式必須評估為 Boolean 值或 Boolean 值的對等用法。 如果條件評估為 True,則會將項目納入查詢結果中,否則會將項目排除在查詢結果之外。

備註

Where 子句可讓您只選取符合特定準則的項目,因此可以用來篩選查詢資料。 會使 Where 子句評估為 True 的項目都會併入查詢結果中,其他項目則會被排除。 Where 子句中的運算式必須評估為 Boolean 或 Boolean 的對等用法,例如當值為零時會評估為 False 的 Integer。 您可以使用 And、Or、AndAlso、OrElse、Is 和 IsNot 之類的邏輯運算子 (Logical Operator),在 Where 子句中合併多個運算式。

根據預設,查詢運算式需有存取活動才會受到評估,例如,查詢運算式為資料繫結或在 For 迴圈 (Loop) 中逐一查看時。 因此,除非存取查詢,否則都不會評估 Where 子句。 如果您在 Where 子句中用到查詢以外的值,請確定在執行查詢時,Where 子句中使用的值是適當的。 如需查詢執行的詳細資訊,請參閱撰寫第一個 LINQ 查詢 (Visual Basic)

您可以在 Where 子句中呼叫函式,以對集合中目前項目的值執行計算或作業。 在 Where 子句中呼叫函式會使查詢在進行定義時就立即執行,而不是等到進行存取時才執行。 如需查詢執行的詳細資訊,請參閱撰寫第一個 LINQ 查詢 (Visual Basic)

範例

下列查詢運算式使用 From 子句,為 customers 集合中每個 Customer 物件宣告範圍變數 cust。 接著 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

下列範例會使用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

請參閱

參考

From 子句 (Visual Basic)

Select 子句 (Visual Basic)

For Each...Next 陳述式 (Visual Basic)

概念

Visual Basic 中的 LINQ 簡介

其他資源

查詢 (Visual Basic)