Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Specifica la condizione di filtro per una query.
Sintassi
Where condition
Parti
condition
Obbligatorio. Espressione che determina se i valori per l'elemento corrente nella raccolta vengono inclusi nella raccolta di output. L'espressione deve restituire un Boolean valore o l'equivalente di un Boolean valore. Se la condizione restituisce True, l'elemento viene incluso nel risultato della query; in caso contrario, l'elemento viene escluso dal risultato della query.
Osservazioni:
La Where clausola consente di filtrare i dati delle query selezionando solo gli elementi che soddisfano determinati criteri. Gli elementi i cui valori causano la valutazione True della Where clausola vengono inclusi nel risultato della query. Gli altri elementi vengono esclusi. L'espressione utilizzata in una Where clausola deve restituire un Boolean oggetto o l'equivalente di un Booleanoggetto , ad esempio un valore Integer che restituisce False quando il relativo valore è zero. È possibile combinare più espressioni in una Where clausola usando operatori logici come And, , OrAndAlsoOrElse, Is, e .IsNot
Per impostazione predefinita, le espressioni di query non vengono valutate fino a quando non si accede, ad esempio quando sono associate a dati o iterate in un For ciclo. Di conseguenza, la Where clausola non viene valutata fino a quando non si accede alla query. Se si dispone di valori esterni alla query usata nella Where clausola , assicurarsi che il valore appropriato venga usato nella Where clausola al momento dell'esecuzione della query. Per altre informazioni sull'esecuzione di query, vedere Scrittura della prima query LINQ.
È possibile chiamare funzioni all'interno di una Where clausola per eseguire un calcolo o un'operazione su un valore dell'elemento corrente nella raccolta. La chiamata di una funzione in una Where clausola può causare l'esecuzione immediata della query quando viene definita anziché quando si accede. Per altre informazioni sull'esecuzione di query, vedere Scrittura della prima query LINQ.
Esempio 1
Nell'espressione di query seguente viene utilizzata una From clausola per dichiarare una variabile cust di intervallo per ogni Customer oggetto dell'insieme customers . La Where clausola usa la variabile di intervallo per limitare l'output ai clienti dall'area specificata. Il For Each ciclo visualizza il nome della società per ogni cliente nel risultato della query.
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
Esempio 2
Nell'esempio seguente vengono utilizzati operatori logici And e Or nella Where clausola .
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