哪種效率更高?Linq效率問題 - foreach vs aggregates
//Option 1
foreach (var q in baseQuery)
{
m_TotalCashDeposit += q.deposit.Cash
m_TotalCheckDeposit += q.deposit.Check
m_TotalCashWithdrawal += q.withdraw.Cash
m_TotalCheckWithdrawal += q.withdraw.Check
}
//Option 2
m_TotalCashDeposit = baseQuery.Sum(q => q.deposit.Cash);
m_TotalCheckDeposit = baseQuery.Sum(q => q.deposit.Check);
m_TotalCashWithdrawal = baseQuery.Sum(q => q.withdraw.Cash);
m_TotalCheckWithdrawal = baseQuery.Sum(q => q.withdraw.Check);
我想我問的是,調用Sum將基本列舉在列表上嗎?所以如果我四次打電話給總結,是不是列舉了四次列表?改用foreach會不會更有效率,所以我只需要枚舉一次列表?
我運行了Lasse建議的測試,發現有一個foreach循環而不是多個Sum可以大大提高效率。感謝Lasse並感謝Duck進行測試並提供進一步的支持。 – Alex 2009-08-12 17:27:31