Where 句 (Visual Basic)
クエリのフィルター処理条件を示します。
構文
Where condition
指定項目
condition
必須です。 コレクション内の現在の項目の値が出力コレクションに含まれるかどうかを決定する式。 式は、Boolean
値または Boolean
値と等価の値に評価される必要があります。 条件が True
に評価される場合、要素はクエリ結果に含まれます。それ以外の場合、要素はクエリ結果から除外されます。
Remarks
Where
句を使用すると、特定の条件を満たす要素のみを選択することで、クエリ データをフィルター処理できます。 値が Where
句を True
に評価させる要素は、クエリ結果に含まれます。その他の要素は除外されます。 Where
句で使用される式は、Boolean
または Boolean
と等価 (値が 0 の場合に False
に評価される整数など) に評価される必要があります。 Where
句では、And
、Or
、AndAlso
、OrElse
、Is
、IsNot
などの論理演算子を使用して、複数の式を組み合わせることができます。
既定では、クエリ式は、アクセスされるまで評価されません。たとえば、データ バインドされたり、For
ループ内で反復処理されたりするときです。 その結果、Where
句は、クエリがアクセスされるまで評価されません。 Where
句で使用されているクエリの外部の値がある場合は、クエリの実行時に Where
句で適切な値が使用されていることを確認してください。 クエリの実行の詳細については、「初めての LINQ クエリの作成」を参照してください。
Where
句内で関数を呼び出して、コレクション内の現在の要素の値に対して計算または操作を実行することができます。 Where
句で関数を呼び出すと、クエリを、アクセス時ではなく定義された直後に実行することができます。 クエリの実行の詳細については、「初めての LINQ クエリの作成」を参照してください。
例 1
次のクエリ式では、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
例 2
次の例では、Where
句で And
および Or
論理演算子を使用しています。
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
関連項目
.NET