Where Tümcesi (Visual Basic)
Bir sorgu için filtreleme koşulunu belirtir.
Syntax
Where condition
Bölümler
condition
Gereklidir. Koleksiyonda geçerli öğenin değerlerinin çıkış koleksiyonuna dahil edilip edilmeyeceğini belirleyen bir ifade. İfade bir değere veya bir değerin eşdeğeri olarak değerlendirilmelidir Boolean Boolean . Koşul olarak değerlendirilirse True , öğe sorgu sonucuna dahil edilir; Aksi takdirde, öğe sorgu sonucundan çıkarılır.
Açıklamalar
WhereYan tümcesi yalnızca belirli ölçütlere uyan öğeleri seçerek sorgu verilerini filtrelemenizi sağlar. Değerleri, Where yan tümcesinin değerlendirilmesine neden olan öğeler True sorgu sonucuna dahil edilir; diğer öğeler hariç tutulur. Bir Where yan tümcesinde kullanılan ifade Boolean Boolean , değeri sıfır olduğunda olarak değerlendirilen bir tamsayı gibi bir veya eşdeğerini vermelidir False . ,,,, Where Ve gibi mantıksal işleçleri kullanarak bir yan tümcede birden çok ifadeyi birleştirebilirsiniz And Or AndAlso OrElse Is IsNot .
Varsayılan olarak, sorgu ifadeleri erişilene kadar değerlendirilmez — Örneğin, veri bağladığında veya bir döngüyle aracılığıyla yinelendiğinde For . Sonuç olarak, bir Where sorgu erişilene kadar yan tümce değerlendirilmez. Yan tümcesinde kullanılan sorguya dış değerler varsa Where , Where sorgu yürütüldüğü sırada yan tümcesinde uygun değerin kullanıldığından emin olun. Sorgu yürütme hakkında daha fazla bilgi için, bkz. Ilk LINQ sorgunuzu yazma.
Bir Where yan tümce içindeki işlevleri, koleksiyondaki geçerli öğeden bir değer üzerinde bir hesaplama veya işlem gerçekleştirmek için çağırabilirsiniz. Bir yan tümcedeki bir işlevi çağırmak, Where sorgunun ne zaman tanımlanmadığında hemen yürütülmesine neden olabilir. Sorgu yürütme hakkında daha fazla bilgi için, bkz. Ilk LINQ sorgunuzu yazma.
Örnek 1
Aşağıdaki sorgu ifadesi, From koleksiyondaki her bir nesne için bir Aralık değişkeni bildirmek üzere bir yan tümce kullanır cust Customer customers . WhereYan tümcesi, belirtilen bölgedeki müşterilere çıktıyı kısıtlamak için Aralık değişkenini kullanır. For EachDöngü, sorgu sonucunda her müşteri için ş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 örnek And Or , yan tümcesindeki ve mantıksal işleçleri kullanır 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