【问题标题】:Creating a new List创建一个新列表
【发布时间】:2008-12-02 17:14:31
【问题描述】:
在创建新列表时,您是指定初始大小还是将其留空?我知道,通过指定初始大小,您可以避免每次添加 x 个项目时列表都重新分配底层数组,但您也会在代码中添加详细程度。最小的性能提升是否值得为您的代码添加冗长和复杂性。当该列表需要再添加一项而您忘记在初始化中添加一项时会发生什么情况,您仍然会受到重新分配的性能开销的影响,而且现在这个数字对于新开发人员来说可能没有意义。
【问题讨论】:
标签:
c#
.net
performance
collections
【解决方案1】:
如果您知道如何使用它,您应该始终指定一个初始大小,因为 C# 开始时列表的大小为 4 (!),并且随着列表的增长,其大小会翻倍。它只是不是一个微优化,因为给 .Net 提示只需要很少的努力。而且可读性不是问题,尤其是如果您可以避免magic numbers。
【解决方案2】:
如果您真的无法准确(轻松)预测列表的大小,请不要费心。
不要围绕预先确定它构建任何代码(更少的代码 == 更好的代码)。
此外,在性能方面,翻倍是增加列表的一种非常有效的方法。
4 8 16 32 64 128 256 512 1024...你懂的。