次の方法で共有


Where 句 (Visual Basic)

クエリのフィルター処理条件を指定します。

Where condition

指定項目

  • condition
    必ず指定します。 コレクション内の現在の項目の値を、出力されるコレクションに含めるかどうかを決定する式。 この式は、Boolean 値、またはBoolean 値の同等値に評価される必要があります。 条件の評価が True の場合、要素はクエリ結果に含まれます。それ以外の場合、要素はクエリ結果から除外されます。

解説

Where 句を使用すると、特定の条件を満たす要素だけを選択することでクエリ データをフィルター処理できます。 クエリ結果には、値が Where 句によって True と評価される要素が格納されます。それ以外の要素は除外されます。 Where 句で使用される式は、Boolean と評価される式、またはBoolean と同等 (値がゼロの場合は False と評価される整数など) でなければなりません。 And、Or、AndAlso、OrElse、Is、IsNot などの論理演算子を使用することで、Where 句の中で複数の式を組み合わせることができます。

既定では、クエリ式はアクセスされる (データにバインドされたり、For ループで反復されたりする) まで評価されません。 この結果、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

参照

参照

From 句 (Visual Basic)

Select 句 (Visual Basic)

For Each...Next ステートメント (Visual Basic)

概念

Visual Basic における LINQ の概要

その他の技術情報

クエリ (Visual Basic)