我需要在循环中提取许多巨大的StringBuilders(每个数据约1mb)的第一行。为此,我考虑过这样做:
string header;
foreach(StringBuilder strBuilder in bigArray)
header= strBuilder.ToString().SubString(blabla);
但是我担心.ToString()方法可能需要太长时间才能执行。您对我如何有效地做到这一点有任何想法吗?
最佳答案
如果您正在寻找一个不能从Substring
提取整个字符串的StringBuilder
替代方案,则可以使用采用ToString
和start
的overload of length
:
string header;
foreach(StringBuilder strBuilder in bigArray)
{
header= strBuilder.ToString(start, length);
}
它更快吗?我不知道-您必须对其进行测量才能确定。
另一种选择是将“行”存储为字符串数组(或
List<List<string>>
)的集合,而不是StringBuilder
的集合。关于c# - StringBuilder ToString()性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22716327/