在字符串开头添加/删除字符的最有效方法?

7 c# string performance concatenation

我正在做一个小的“可扩展的”C# MVC 项目,对数据库有相当多的读/写。

由此,我需要添加/删除输入字符串的第一个字母。


“删除”第一个字符很容易(使用 Substring 方法) - 使用类似的东西:

String test = "HHello world";
test = test.Substring(1,test.Length-1);
Run Code Online (Sandbox Code Playgroud)

有效地“添加”一个角色似乎很混乱/尴尬:

String test = "ello World";
test = "H" + test;
Run Code Online (Sandbox Code Playgroud)

鉴于这将对大量记录进行,这是否是执行这些操作的最有效方式?

我还通过使用测试字符串是否以字母“T”开头,如果不是,则添加“T”:

String test = "Hello World";
if(test[0]!='T')
{
    test = "T" + test;
}
Run Code Online (Sandbox Code Playgroud)

并想知道这是否适合于此

Sav*_*ano 6

如果您有多个记录,并且需要在每个记录字段的开头附加一个字符,则可以使用String.Insert索引 0 http://msdn.microsoft.com/it-it/library/system.string .插入(v=vs.110).aspx

string yourString = yourString.Insert( 0, "C" );
Run Code Online (Sandbox Code Playgroud)

这几乎与您在原始帖子中所写的内容几乎相同,但由于您似乎更喜欢使用方法而不是运算符...

如果您必须将一个字符多次附加到单个字符串,那么您最好使用StringBuilder http://msdn.microsoft.com/it-it/library/system.text.stringbuilder(v=vs.110) .aspx


Pat*_*man 4

我认为两者都是同样有效的,因为两者都需要一个新的string来初始化,因为string它是不可变的。

当对同一字符串多次执行此操作时,StringBuilder添加时 a 可能会派上用场。与添加相比,这将提高性能。

如果可能的话,您还可以选择将此操作移至数据库端。这也可能会提高性能。