[英]Most efficient way of adding/removing a character to beginning of string?
我當時正在做一個小型的“可擴展” C#MVC項目,對數據庫進行了大量讀/寫操作。
由此,我需要添加/刪除輸入字符串的第一個字母。
“刪除”第一個字符非常容易(使用Substring方法)-使用類似以下內容:
String test = "HHello world";
test = test.Substring(1,test.Length-1);
有效地“添加”一個角色似乎很麻煩/尷尬:
String test = "ello World";
test = "H" + test;
鑒於將對許多記錄執行此操作,這將是執行這些操作的最有效方法嗎?
我還通過使用來測試字符串是否以字母“ T”開頭,如果不是,則添加“ T”:
String test = "Hello World";
if(test[0]!='T')
{
test = "T" + test;
}
並想知道這是否適合
我認為兩者都是同等有效的,因為string
都是不可變的,因此都需要初始化新的string
。
當對同一字符串多次執行此操作時,添加時, StringBuilder
可能會派上用場。 與添加相比,這將提高性能。
如果可能,您還可以選擇將此操作移至數據庫端。 這也可能會提高性能。
如果您有多個記錄,並且需要在每個記錄字段的開頭添加一個字符,則可以使用String.Insert
,索引為0 http://msdn.microsoft.com/it-it/library/ system.string.insert(v = vs.110)的.aspx
string yourString = yourString.Insert( 0, "C" );
這幾乎與您在原始帖子中寫的內容一樣,但是由於您似乎更喜歡使用Method而不是運算符...
如果必須多次向單個字符串附加一個字符,則最好使用StringBuilder
http://msdn.microsoft.com/it-it/library/system.text.stringbuilder(v=vs.110 )的.aspx
對於刪除,我將使用remove命令,因為這不需要知道字符串的長度:
test = test.Remove(0, 1);
您也可以將字符串視為添加和使用的數組
test = test.Insert(0, "H");
如果您總是要刪除然后再添加一個字符,則可以將字符串再次視為數組,而只需替換字符即可。
test = (test.ToCharArray()[0] = 'H').ToString();
當對同一字符串進行大量操作時,我會使用StringBuilder
雖然創建起來比較昂貴,但是對字符串的操作更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.