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)
并想知道这是否适合于此
如果您有多个记录,并且需要在每个记录字段的开头附加一个字符,则可以使用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
我认为两者都是同样有效的,因为两者都需要一个新的string
来初始化,因为string
它是不可变的。
当对同一字符串多次执行此操作时,StringBuilder
添加时 a 可能会派上用场。与添加相比,这将提高性能。
如果可能的话,您还可以选择将此操作移至数据库端。这也可能会提高性能。
归档时间: |
|
查看次数: |
10708 次 |
最近记录: |