我需要在循环中提取许多巨大的StringBuilders的第一行(每个大约1mb的数据)。为此,我考虑过这样做:
string header;
foreach(StringBuilder strBuilder in bigArray)
header= strBuilder.ToString().SubString(blabla);
但是我担心.ToString()方法可能需要很长时间才能执行。您对我如何有效地做到这一点有任何想法吗?
答案 0 :(得分:8)
如果您正在寻找不会从Substring
中提取整个字符串的StringBuilder
替代方案,则可以使用start
和overload of ToString
length
{1}}:
string header;
foreach(StringBuilder strBuilder in bigArray)
{
header= strBuilder.ToString(start, length);
}
更快吗?我不知道 - 你必须测量它才能确定。
另一种方法是将“lines”存储为字符串数组(或List<List<string>>
)的集合,而不是StringBuilder
的集合。