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 Booleanveya eşdeğeri olarak değerlendirilmelidir False . , , AndAlsoOrIsOrElseve IsNotgibi Andmantı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

Ayrıca bkz.