渐近最优化都将需要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