是否更快地使用字符的arraylist来执行多个字符串连接?

Man*_*ndo 2 c# .net-micro-framework c#-3.0

我正在使用.Net微框架,因此StringBuilder不可用.

我已经看到来自apt专业人员的一些代码使用chars的Arraylist来连接和构建字符串,而不是+运算符.它们本质上构建了一个托管代码StringBuilder.

这有性能优势吗?假设连接数大于10且字符串长度也大于10.

Jon*_*eet 11

不,不使用ArrayListchar值.这将填补每一个字符 - 性能将是可怕的,内存使用.(引用的大小+每个字符的盒装字符的大小......呀!)

在需要时使用char[]内部并"调整"它(创建一个新数组并复制内容),每次可能加倍.(编辑:你没有把它调整到你需要的确切大小 - 你可以从16个字符开始并保持加倍 - 所以大多数Append操作都不需要"调整"数组的大小.)

StringBuilder无论如何,这与工作方式类似.(它更接近Java的StringBuilder工作方式.)

我建议你实际上StringBuilder用最重要的成员建立自己的类型.单元测试它,并在适当的位置进行配置.

如果你想要一个简短的例子,请告诉我.

  • 首先,您可以直接从`char []`构造一个字符串.另一方面,我假设一个甚至没有`StringBuilder`的框架不太可能有泛型......例如,微框架没有. (3认同)