渐近最优两者都需要O(n)(当然,n等于列表的长度)时间才能完成,但在第一个例子中,列表只迭代一次,而在第二个例子中它将是迭代了5次。
第一种方式:
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?
时是否进行了任何优化答案 0 :(得分:3)
1)使用第二种方式是否被视为“不良”做法?
是的,为什么你会在列表中迭代五次,而你可以通过一次迭代实现同样的事情?
2)编译器在构建.exe?
时是否进行了任何优化
不,因为这里没有任何优化(对于编译器)。至少我看不到任何。