漸近最優化都將需要O(n)(當然,n等於列表的長度)時間來完成,但在第一個例子中,列表將被迭代一次,而在第二個中它將迭代5次。LINQ vs foreach當試圖總結
第一種方式:
foreach (var item in model)
{
fieldsSum.EnergyObjectCount += item.EnergyObjectCount;
fieldsSum.HourlyCapacityUtilization += item.HourlyCapacityUtilization;
fieldsSum.InstalledPower += item.InstalledPower;
fieldsSum.NumberOfGuarantees += item.NumberOfGuarantees;
fieldsSum.ProducedEnergy += item.ProducedEnergy;
}
方式二:
fieldsSum.EnergyObjectCount = model.Sum(item => item.EnergyObjectCount);
fieldsSum.HourlyCapacityUtilization = model.Sum(item => item.HourlyCapacityUtilization);
fieldsSum.InstalledPower = model.Sum(item => item.InstalledPower);
fieldsSum.NumberOfGuarantees = model.Sum(item => item.NumberOfGuarantees);
fieldsSum.ProducedEnergy = model.Sum(item => item.ProducedEnergy);
1)它是被認爲是 '壞' 的做法是使用第二種方式?
2)編譯器在生成.exe時是否做了任何優化?
我認爲第二個不好的做法是因爲你在相同的模型上迭代5次 – Sayse 2014-09-03 13:34:11
這個問題可能是天真的,但它仍然是一個有效的問題。爲什麼-1?來自我的+1 – 2014-09-03 13:38:12