Any()在这个LINQ查询中的含义是什么?

时间:2012-05-27 09:51:27

标签: c# linq any

Any()在以下查询中做了什么?

context.Customers
    .Include("InternetSales")
    .Where(c => c.InternetSales.Any())
    .Take(100);

你怎么用简单的英语读出这个查询?例如,以下内容是否准确?

  

“让客户获得相关的100个互联网销售。”

(我知道代码中没有“get”,但你明白我的意思。)

1 个答案:

答案 0 :(得分:19)

Any运算符检查某个枚举/集合是否包含至少一个项目,即它是否为非空。

所以我猜您的查询可以读作:

  

“前100名至少进行过一次互联网销售的客户”

或者,更接近金属:

  

“具有非空Customer集合的前100个InternetSales个对象”

.Any().Count() > 0类似,但它最多会占用集合中的一个项目,而Count会消耗整个集合,因此Any通常效率更高并且也适用于无限序列。如果您对确切的项目数不感兴趣,Any也表达了更清楚地检查非空虚的意图。