Any()
在以下查询中做了什么?
context.Customers
.Include("InternetSales")
.Where(c => c.InternetSales.Any())
.Take(100);
你怎么用简单的英语读出这个查询?例如,以下内容是否准确?
“让客户获得相关的100个互联网销售。”
(我知道代码中没有“get”,但你明白我的意思。)
答案 0 :(得分:19)
Any
运算符检查某个枚举/集合是否包含至少一个项目,即它是否为非空。
所以我猜您的查询可以读作:
“前100名至少进行过一次互联网销售的客户”
或者,更接近金属:
“具有非空
Customer
集合的前100个InternetSales
个对象”
.Any()
与.Count() > 0
类似,但它最多会占用集合中的一个项目,而Count
会消耗整个集合,因此Any
通常效率更高并且也适用于无限序列。如果您对确切的项目数不感兴趣,Any
也表达了更清楚地检查非空虚的意图。