Clausola Where (Visual Basic)

Specifica le condizioni di filtro per una query.

Where condition

Parti

  • condition
    Obbligatorio.Espressione che determina se i valori per l'elemento corrente della raccolta vengono inclusi nella raccolta di output.L'espressione deve restituire un valore Boolean oppure l'equivalente di un valore Boolean.Se la condizione restituisce True, l'elemento viene incluso nel risultato della query; in caso contrario, l'elemento viene escluso dal risultato della query.

Note

La clausola Where consente di filtrare i dati della query selezionando solo gli elementi che soddisfano determinati criteri.Gli elementi i cui valori sono tali che la clausola Where restituisce True vengono inclusi nel risultato della query; gli altri elementi vengono esclusi.L'espressione utilizzata in una clausola Where deve restituire un Boolean o l'equivalente di un Boolean, ad esempio un Integer che restituisce False quando il valore è zero.È possibile combinare più espressioni in una clausola Where utilizzando operatori logici come And, Or, AndAlso, OrElse, Is, e IsNot.

Per impostazione predefinita, le espressioni di query non vengono valutate fino a che si accede ad esse, ad esempio quando sono associate a dati o quando vengono fatte scorrere in un ciclo For.Di conseguenza, la clausola Where non viene valutata, fino a che si accede alla query.Se si dispone di valori esterni alla query utilizzati nella clausola Where, assicurarsi che venga utilizzato il valore adatto nella clausola Where quando la query viene eseguita.Per ulteriori informazioni sull'esecuzione delle query, vedere Scrittura della prima query LINQ (Visual Basic).

È possibile chiamare funzioni all'interno di una clausola Where per eseguire un calcolo o un'operazione su un valore dall'elemento corrente della raccolta.La chiamata di una funzione in una clausola Where può fare in modo che la query venga eseguita immediatamente quando viene definita anziché quando si accede ad essa.Per ulteriori informazioni sull'esecuzione delle query, vedere Scrittura della prima query LINQ (Visual Basic).

Esempio

Nell'espressione di query seguente viene utilizzata una clausola From per dichiarare una variabile di intervallo cust per ogni oggetto Customer nella raccolta customers.La clausola Where utilizza la variabile di intervallo per restringere l'output ai clienti dalla regione specificata.Il ciclo For Each visualizza il nome di azienda 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

Nell'esempio seguente viene utilizzato And e Or operatori logici in 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

Vedere anche

Riferimenti

Clausola From (Visual Basic)

Clausola Select (Visual Basic)

Istruzione For Each...Next (Visual Basic)

Concetti

Introduzione a LINQ in Visual Basic

Altre risorse

Query (Visual Basic)