Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menentukan kondisi pemfilteran untuk kueri.
Sintaksis
Where condition
Bagian
condition
Dibutuhkan. Ekspresi yang menentukan apakah nilai untuk item saat ini dalam koleksi disertakan dalam koleksi output. Ekspresi harus mengevaluasi ke Boolean nilai atau nilai yang Boolean setara. Jika kondisi mengevaluasi ke True, elemen disertakan dalam hasil kueri; jika tidak, elemen dikecualikan dari hasil kueri.
Komentar
Klausa memungkinkan Where Anda memfilter data kueri dengan memilih hanya elemen yang memenuhi kriteria tertentu. Elemen yang nilainya menyebabkan Where klausul dievaluasi True disertakan dalam hasil kueri; elemen lain dikecualikan. Ekspresi yang digunakan dalam Where klausul harus mengevaluasi ke Boolean atau yang setara dengan , seperti Bilangan BooleanBulat yang mengevaluasi kapan False nilainya nol. Anda dapat menggabungkan beberapa ekspresi dalam Where klausul dengan menggunakan operator logis seperti And, , Or, AndAlsoOrElse, Is, dan IsNot.
Secara default, ekspresi kueri tidak dievaluasi hingga diakses—misalnya, saat terikat data atau diulang dalam perulangan For . Akibatnya, Where klausa tidak dievaluasi hingga kueri diakses. Jika Anda memiliki nilai di luar kueri yang digunakan dalam Where klausa, pastikan bahwa nilai yang sesuai digunakan dalam Where klausa pada saat kueri dijalankan. Untuk informasi selengkapnya tentang eksekusi kueri, lihat Menulis Kueri LINQ Pertama Anda.
Anda dapat memanggil fungsi dalam Where klausul untuk melakukan penghitungan atau operasi pada nilai dari elemen saat ini dalam koleksi. Memanggil fungsi dalam Where klausul dapat menyebabkan kueri segera dijalankan ketika didefinisikan alih-alih ketika diakses. Untuk informasi selengkapnya tentang eksekusi kueri, lihat Menulis Kueri LINQ Pertama Anda.
Contoh 1
Ekspresi kueri berikut menggunakan klausul From untuk mendeklarasikan variabel cust rentang untuk setiap Customer objek dalam customers koleksi. Klausul Where menggunakan variabel rentang untuk membatasi output kepada pelanggan dari wilayah yang ditentukan. Perulangan For Each menampilkan nama perusahaan untuk setiap pelanggan dalam hasil kueri.
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
Contoh 2
Contoh berikut menggunakan And dan Or operator logis dalam Where klausa.
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