Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Egy lekérdezés szűrési feltételét adja meg.
Szemantika
Where condition
Részek
condition
Szükséges. Egy kifejezés, amely meghatározza, hogy a gyűjtemény aktuális elemének értékei szerepelnek-e a kimeneti gyűjteményben. A kifejezésnek egy értéknek Boolean vagy egy értéknek megfelelőnek Boolean kell lennie. Ha a feltétel kiértékelése így Truetörténik, az elem szerepel a lekérdezés eredményében, ellenkező esetben az elem ki van zárva a lekérdezés eredményéből.
Megjegyzések
A Where záradék lehetővé teszi a lekérdezési adatok szűrését úgy, hogy csak bizonyos feltételeknek megfelelő elemeket választ ki. Azok az elemek, amelyek értékei a Where záradék kiértékelését True okozzák, szerepelnek a lekérdezés eredményében; a többi elem ki van zárva. A záradékban Where használt kifejezésnek egy vagy azzal egyenértékűnek Booleankell lennieBoolean, például egy egész számnakFalse, amely akkor értékeli ki, ha értéke nulla. Egy záradékban Where több kifejezést is kombinálhat olyan logikai operátorok használatával, mint Anda , Or, AndAlso, OrElse, Isés IsNot.
Alapértelmezés szerint a lekérdezési kifejezések nem lesznek kiértékelve, amíg el nem érik őket – például amikor adathoz kötöttek vagy egy cikluson For keresztül iteratedálják őket. Ennek eredményeképpen a Where záradék csak a lekérdezés eléréséig lesz kiértékelve. Ha a záradékban Where használt lekérdezésen kívüli értékekkel rendelkezik, győződjön meg arról, hogy a megfelelő értéket használja a Where záradék a lekérdezés végrehajtásakor. A lekérdezések végrehajtásával kapcsolatos további információkért lásd : Az első LINQ-lekérdezés írása.
A záradékon belüli Where függvényeket meghívva számítást vagy műveletet hajthat végre a gyűjtemény aktuális eleméből származó értéken. Ha egy függvényt meghív egy Where záradékban, akkor a lekérdezés azonnal végrehajtható lesz, amikor a lekérdezést definiálják, és nem azt, hogy mikor érik el. A lekérdezések végrehajtásával kapcsolatos további információkért lásd : Az első LINQ-lekérdezés írása.
1. példa
Az alábbi lekérdezési kifejezés egy záradékkal From deklarál egy tartományváltozót cust a Customer gyűjtemény minden customers objektumához. A Where záradék a tartományváltozó használatával korlátozza a kimenetet a megadott régióból származó ügyfelek számára. A For Each hurok megjeleníti az egyes ügyfelek cégnevét a lekérdezés eredményében.
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. példa
Az alábbi példa a záradékban Where használt és Or logikai operátorokat használjaAnd.
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