Как оптимизировать этот запрос linq, получив два номера за один вызов?

Код выглядит следующим образом: у него есть проблема с производительностью из-за того, что один и тот же запрос был выполнен дважды. Как новичок, я не совсем знаком с синтаксисом.

Может ли кто-нибудь сказать мне, как получить оба эти номера за один звонок?

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

int numberOfItems = query.Count();
var products = query.ToList();
2 ответа

Вы можете просто получить счет из списка:

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

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


Вы можете получить количество элементов после получения list.

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

query.Count(); выполнит запрос во второй раз. Но у нас есть список найденных элементов. И мы можем получить количество элементов в списке с помощью свойства Count.

licensed under cc by-sa 3.0 with attribution.