共用方式為


判斷序列中的元素是否滿足至少一個或全部符合條件

如果序列中的所有專案都符合條件,則 All 運算符會傳回 true

如果序列中的任何專案符合條件,則 Any 運算符會傳回 true

範例 1

下列範例會返回至少有一筆訂單的客戶序列。 如果指定的 Where 有任何 /,則 wheretrueCustomer 子句會評估為 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

範例 2

下列 Visual Basic 程式代碼會決定未下訂單的客戶清單,並確保該清單中的每個客戶都會提供聯繫人名稱。

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

範例 3

下列 C# 範例會傳回訂單開頭為 「C」 ShipCity 的客戶序列。 退貨中也包含沒有訂單的客戶。 (根據設計,All 運算元在空序列時會傳回 true。)沒有訂單的客戶會被使用 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}");
    }
}

另請參閱