Where 절(Visual Basic)
쿼리에 대한 필터링 조건을 지정합니다.
구문
Where condition
부분
condition
필수입니다. 컬렉션의 현재 항목에 대한 값이 출력 컬렉션에 포함되는지 여부를 결정하는 식입니다. 식은 Boolean
값 또는 Boolean
값에 해당하는 값으로 계산되어야 합니다. 조건이 True
로 계산되면 요소가 쿼리 결과에 포함되고, 그러지 않으면 요소가 쿼리 결과에서 제외됩니다.
설명
Where
절을 사용하면 특정 조건을 충족하는 요소만 선택하여 쿼리 데이터를 필터링할 수 있습니다. 값으로 인해 Where
절이 True
로 계산되는 요소는 쿼리 결과에 포함되고 다른 요소는 제외됩니다. Where
절에 사용되는 식은 값이 0인 경우를 False
로 계산하는 정수와 같이 Boolean
또는 Boolean
에 해당하는 값으로 평가되어야 합니다. And
, Or
, AndAlso
, OrElse
, Is
, IsNot
과 같은 논리 연산자를 사용하여 Where
절에서 여러 표현식을 결합할 수 있습니다.
기본적으로 쿼리 식은 액세스될 때까지 평가되지 않습니다(예: 데이터 바인딩되거나 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