StringBuilder ToString()性能

时间:2014-03-28 14:58:24

标签: c# wpf performance optimization stringbuilder

我需要在循环中提取许多巨大的StringBuilders的第一行(每个大约1mb的数据)。为此,我考虑过这样做:

string header;
foreach(StringBuilder strBuilder in bigArray)
    header= strBuilder.ToString().SubString(blabla);

但是我担心.ToString()方法可能需要很长时间才能执行。您对我如何有效地做到这一点有任何想法吗?

1 个答案:

答案 0 :(得分:8)

如果您正在寻找不会从Substring中提取整个字符串的StringBuilder替代方案,则可以使用startoverload of ToString length {1}}:

string header;
foreach(StringBuilder strBuilder in bigArray)
{
    header= strBuilder.ToString(start, length);
}

更快吗?我不知道 - 你必须测量它才能确定。

另一种方法是将“lines”存储为字符串数组(或List<List<string>>)的集合,而不是StringBuilder的集合。