gpt4 book ai didi

c# - 尝试求和时 LINQ vs foreach

转载 作者:行者123 更新时间:2023-11-30 22:03:56 25 4
gpt4 key购买 nike

渐近最优都需要 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 时是否进行任何优化?

最佳答案

1) Is it considered a 'bad' practise to use the second way?

是的,为什么要对一个列表进行五次迭代,而一次迭代就可以达到相同的效果?

2) Does the compiler do any optimizations while building the .exe?

没有,因为这里没有什么可以优化的(对于编译器)。至少我看不到。

关于c# - 尝试求和时 LINQ vs foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25645722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com