创建新列表

时间:2008-12-02 17:14:32

标签: c# .net performance collections

创建新列表时,是指定初始大小还是留空?我知道通过指定初始大小,您可以避免让列表在每次添加x个项目时重新分配基础数组,但您也会在代码中添加详细程度。最小的性能增益是否值得为代码添加详细程度和复杂性。当该列表需要一个项目并且您忘记在初始化中添加一个项目时仍然会遇到重新分配的性能开销,现在这个数字可能对新开发人员没有意义。

2 个答案:

答案 0 :(得分:5)

如果您对如何使用它有所了解,则应始终指定初始大小,因为C#启动大小为4的列表(!),并且随着列表的增长,大小增加一倍。它只是一个微观优化,因为它给微软提供了很少的努力。可读性不是问题,特别是如果你可以避免magic numbers

答案 1 :(得分:2)

如果你真的不能准确(并且容易)预测列表的大小,请不要打扰。

不要提前构建任何代码(更少的代码==更好的代码)。

此外,加倍是一种非常有效的方法来增加列表的性能。

4 8 16 32 64 128 256 512 1024 ...你明白了。