Where Tümcesi (Visual Basic)
Sorgu için filtreleme koşulunu belirtir.
Sözdizimi
Where condition
Parça
condition
Gerekli. Koleksiyondaki geçerli öğe için değerlerin çıkış koleksiyonuna eklenip eklenmeyeceğini belirleyen ifade. İfade bir değere veya değerin Boolean
eşdeğerine Boolean
göre değerlendirilmelidir. Koşul olarak değerlendirilirse True
, öğesi sorgu sonucuna eklenir; aksi takdirde öğe sorgu sonucundan dışlanır.
Açıklamalar
Where
yan tümcesi, yalnızca belirli ölçütlere uyan öğeleri seçerek sorgu verilerini filtrelemenizi sağlar. Değerleri yan tümcesinin Where
değerlendirilmesine True
neden olan öğeler sorgu sonucuna eklenir; diğer öğeler dışlanır. Yan tümcesinde Where
kullanılan ifade, değeri sıfır olduğunda değerlendirilen bir Boolean
Tamsayı gibi bir Boolean
veya eşdeğeri olarak değerlendirilmelidir False
. , , AndAlso
Or
Is
OrElse
ve IsNot
gibi And
mantıksal işleçleri kullanarak yan Where
tümcede birden çok ifadeyi birleştirebilirsiniz.
Varsayılan olarak, sorgu ifadeleri erişilene kadar (örneğin, bir For
döngüde veriye bağlı veya yinelendiğinde) değerlendirilmez. Sonuç olarak, Where
sorguya erişilene kadar yan tümcesi değerlendirilmez. Yan tümcesinde Where
kullanılan sorgunun dışında değerleriniz varsa, sorgu yürütülürken yan tümcesinde Where
uygun değerin kullanıldığından emin olun. Sorgu yürütme hakkında daha fazla bilgi için bkz . İlk LINQ Sorgunuzu Yazma.
Koleksiyondaki geçerli öğeden bir Where
değer üzerinde hesaplama veya işlem gerçekleştirmek için yan tümce içindeki işlevleri çağırabilirsiniz. Yan tümcesinde Where
bir işlevin çağrılması, sorgunun erişildiğinde değil tanımlandığında hemen yürütülmesine neden olabilir. Sorgu yürütme hakkında daha fazla bilgi için bkz . İlk LINQ Sorgunuzu Yazma.
Örnek 1
Aşağıdaki sorgu ifadesi, koleksiyondaki her Customer
nesne için bir aralık değişkeni cust
bildirmek üzere bir From
yan tümcesi customers
kullanır. Where
yan tümcesi, belirtilen bölgedeki müşterilerle çıkışı kısıtlamak için aralık değişkenini kullanır. döngü, For Each
sorgu sonucundaki her müşterinin şirket adını görüntüler.
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
Örnek 2
Aşağıdaki örnekte yan tümcesinde Where
ve Or
mantıksal işleçleri kullanılırAnd
.
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