簡體   English   中英

這兩個linq查詢之間有什么區別?

[英]What is difference between these two linq queries?

下面有兩個linq查詢,它們返回完整的差值結果,第一個查詢返回4條記錄,第二個返回72條記錄。 我認為他們是一樣的。 誰能解釋為什么他們返回差異記錄集。 感謝您的幫助。

void Main()
{
    var q1 = from c in Customers
            where !c.Orders.Any(o => o.OrderDetails.Sum(od => od.UnitPrice * od.Quantity) < 1000)
            select new {c.CustomerID, c.ContactName};

    q1.Dump();

    var q2 = from c in Customers
             where c.Orders.Any(o => o.OrderDetails.Sum(od => od.Quantity * od.UnitPrice) >= 1000)
             select new {c.CustomerID, c.ContactName};

    q2.Dump();
}
  1. 第一個返回的客戶沒有任何總價格低於 1000的訂單。
  2. 第二返回任何訂單的總價格高於或等於 1000個客戶。

換句話說,假設有一個客戶的一個訂單的總價格小於1000,而另一個訂單的總價格大於1000。由於訂單量較小,該客戶記錄將不包括在第一個結果集中,而是較大的順序包含在第二個結果集中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM