如何通过在一次调用中获取两个数字来优化此linq查询?

时间:2014-04-12 15:36:26

标签: c# .net performance linq

代码如下,由于相同的查询已执行两次,因此存在性能问题。作为一个新手,我对语法不太熟悉。

有人可以告诉我如何在一次通话中获得这两个号码吗?

var query = from p in myContext.Products
where p.Price < 50
select p;

int numberOfItems = query.Count();
var products = query.ToList();

2 个答案:

答案 0 :(得分:3)

您可以从列表中获取计数:

var query = from p in myContext.Products
where p.Price < 50
select p;

var products = query.ToList();
int numberOfItems = products.Count;

答案 1 :(得分:2)

获得list后,您可以获得项目数。

  var products = query.ToList();
  int numberOfItems = products.Count;

query.Count();将第二次执行查询。但是我们已经有了搜索项目的列表。我们可以借助Count属性获取列表中的项目数。