C# 这两个linq查询之间有什么区别?
下面有两个linq查询,它们返回完全不同的结果,第一个查询返回4条记录,第二个返回72条记录。我认为他们是一样的。谁能解释他们为什么返回差异记录集。谢谢你的帮助C# 这两个linq查询之间有什么区别?,c#,linq,linq-to-sql,linqpad,C#,Linq,Linq To Sql,Linqpad,下面有两个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) sel
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();
}
void Main()
{
var q1=客户中的c
其中!c.Orders.Any(o=>o.OrderDetails.Sum(od=>od.UnitPrice*od.Quantity)<1000)
选择新建{c.CustomerID,c.ContactName};
q1.Dump();
var q2=来自客户的c
其中c.Orders.Any(o=>o.OrderDetails.Sum(od=>od.Quantity*od.UnitPrice)>=1000)
选择新建{c.CustomerID,c.ContactName};
q2.Dump();
}
换言之,假设一个客户的订单总价低于1000,而另一个订单总价高于1000。由于订单较小,客户记录不会包含在第一个结果集中,但由于订单较大,它会包含在第二个结果集中。可能更容易理解:
!Any()
与All()
相同。区别可能在于数据库如何计算空值,但对于将此列为答案的内容还不够自信。可能更容易理解:!Any()
与All()
相同,区别可能在于数据库如何计算空值,但还没有足够的信心将其列为答案。