如何以高性能的方式向数组中的每个字符串添加字符?

时间:2018-09-03 15:50:30

标签: c# string

我需要良好的性能选项,以便将字符添加到string[] mystring; mystring[0] = "I1.0" mystring[1] = "I1.1" 之类的

string[] mystring;
mystring[0] = "%I1.0"
mystring[1] = "%I1.1"

进入

"%"

我需要在每个新字符串的开头添加StringBuilder

我必须编辑一个较大的Excel文件,并且需要良好的性能。我必须使用ToCharArray还是{{1}}?

3 个答案:

答案 0 :(得分:2)

StringBuilder仅适用于5个以上的字符串操作,否则只是不必要的开销。只是在您的情况下使用+,就不能对其进行太多优化。

请参阅StringBuilder性能基准测试和比较here


如果您看到的性能不可接受,建议您搜索其他解决方案。重新考虑是否确实需要您要实现的目标,并且可能想出一些解决方法。

答案 1 :(得分:0)

回到过去,我看到许多关于某个代码段性能的问题。我们将得到的答案是“这是一个错误的问题。问题应该是'它是否足以满足我的客户的需求?如果不是,那么下一个问题应该是瓶颈。”

如果我这样做,我可能会将其输出为

string.format("%{0}", nputString)

使其运行,然后查看它是否足够快以适合我的使用。

在这种情况下,我会优先考虑可读性和可维护性而不是性能方面的考虑。

答案 2 :(得分:0)

非常感谢,最后,“ +”的运行速度足够快!

for (int i1 = 0; i1 < count; i1++)
                    {
                        if (adress[i1].Substring(0, 1) != "%") // TIA Portal: Operand hat "%" vorstehen, falls nicht wird hinzugefügt
                        {
                            adress[i1] = "%" + adress[i1];
                        }
                    }