У меня это для каждого цикла
foreach (Account acct in acctTest)
{
if (acct.AccountId == acctId)
{
foreach (Customer cust in acct.CustomerColl)
{
if (cust.CustomerId == custId)
{
customerName = cust.CustomerName;
break;
}
}
}
}
Запрос Linq, который делает подобные вещи (думаю, это можно улучшить)
customerName = (from acct in acctTest
where acct.AccountId == acctId
from cust in acct.CustomerColl
where cust.CustomerId == custId
select cust.CustomerName).ToString() ;
Я выполняю вышеупомянутые два в цикле 1000 раз по 5 раз, получаю время выполнения, как показано ниже.
Истекшее время для каждого ::: 7377
Прошедшее время для Linq2 ::: 15653
Истекшее время для каждого ::: 1576
Прошедшее время для Linq2 ::: 1718
Прошедшее время для каждого ::: 1569
Прошедшее время для Linq2 ::: 1726
Прошедшее время для каждого ::: 1569
Прошедшее время для Linq2 ::: 5583
Истекшее время для каждого ::: 1570
Прошедшее время для Linq2 ::: 1506
почему есть разница и несогласованность в сроках исполнения?
Кроме того, можно ли переписать запрос LINQ для повышения производительности?