StringBuilder ToString()性能

Mic*_*ael 2 c# wpf optimization performance stringbuilder

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

string header;
foreach(StringBuilder strBuilder in bigArray)
    header= strBuilder.ToString().SubString(blabla);
Run Code Online (Sandbox Code Playgroud)

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

D S*_*ley 8

如果你正在寻找一个Substring不能从中提取整个字符串的替代方法,StringBuilder你可以使用带有a 和的重载ToString:startlength

string header;
foreach(StringBuilder strBuilder in bigArray)
{
    header= strBuilder.ToString(start, length);
}
Run Code Online (Sandbox Code Playgroud)

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

另一种方法是将"行"存储为字符串数组(或List<List<string>>)的集合,而不是StringBuilders 的集合.