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.
L'operatore All restituisce true se tutti gli elementi di una sequenza soddisfano una condizione.
L'operatore Any restituisce true se un elemento in una sequenza soddisfa una condizione.
Esempio 1
Nell'esempio seguente viene restituita una sequenza di clienti con almeno un ordine. La clausola Where/where restituisce true se il Customer specificato ha un qualsiasi Order.
var OrdersQuery =
from cust in db.Customers
where cust.Orders.Any()
select cust;
Dim OrdersQuery = _
From cust In db.Customers _
Where cust.Orders.Any() _
Select cust
Esempio 2
Il codice Visual Basic seguente determina l'elenco dei clienti che non hanno effettuato ordini e garantisce che per ogni cliente in tale elenco venga fornito un nome di contatto.
Public Sub ContactsAvailable()
Dim db As New Northwnd("c:\northwnd.mdf")
Dim result = _
(From cust In db.Customers _
Where Not cust.Orders.Any() _
Select cust).All(AddressOf ContactAvailable)
If result Then
Console.WriteLine _
("All of the customers who have made no orders have a contact name")
Else
Console.WriteLine _
("Some customers who have made no orders have no contact name")
End If
End Sub
Function ContactAvailable(ByVal contact As Object) As Boolean
Dim cust As Customer = CType(contact, Customer)
Return (cust.ContactTitle Is Nothing OrElse _
cust.ContactTitle.Trim().Length = 0)
End Function
Esempio 3
L'esempio C# seguente restituisce una sequenza di clienti i cui ordini hanno un ShipCity che inizia con "C". Sono inclusi anche i clienti che non hanno effettuato ordini. Per impostazione predefinita, l'operatore All restituisce true per una sequenza vuota. I clienti senza ordini vengono eliminati nell'output della console usando l'operatore Count.
var custEmpQuery =
from cust in db.Customers
where cust.Orders.All(o => o.ShipCity.StartsWith("C"))
orderby cust.CustomerID
select cust;
foreach (Customer custObj in custEmpQuery)
{
if (custObj.Orders.Count > 0)
Console.WriteLine($"CustomerID: {custObj.CustomerID}");
foreach (Order ordObj in custObj.Orders)
{
Console.WriteLine($"\t OrderID: {ordObj.OrderID}; ShipCity: {ordObj.ShipCity}");
}
}