Linq Lambda против производительности синтаксиса запросов

я видел сегодня синтаксис запроса linq в моем проекте, который считал отList предметы по указанному условию так:

int temp =  (from A in pTasks 
             where A.StatusID == (int)BusinessRule.TaskStatus.Pending     
             select A).ToList().Count();

я думал реорганизовать его, написав его, как с помощьюCount() чтобы сделать его более читабельным, и я подумал, что это было бы неплохо для производительности, поэтому я написал:

int UnassignedCount = pTasks.Count(x => x.StatusID == (int)BusinessRule.TaskStatus.Pending);

Но когда я проверил, поставивStopWatch Время, прошедшее с помощью лямбда-выражения, всегда больше, чем запрос synax:

Stopwatch s = new Stopwatch();
s.Start();
int UnassignedCount = pTasks.Count(x => x.StatusID == (int)BusinessRule.TaskStatus.Pending);
s.Stop();
Stopwatch s2 = new Stopwatch();
s2.Start();
int temp =  (from A in pTasks 
             where A.StatusID == (int)BusinessRule.TaskStatus.Pending
             select A).ToList().Count();
s2.Stop();

Может кто-нибудь объяснить, почему это так?

Ответы на вопрос(0)

Ваш ответ на вопрос