2011-05-26 78 views
2

這是一個非常基本的問題,但這裏有一個問題:C#中是否存在一個字符串方法,它將一串字符添加到另一個字符串中?在C++ std :: string類中,有append方法有三個參數:源字符串,indexStart,偏移量。將一定數量的字符從一個字符串附加到另一個字符串

string a = "foo"; 
string b = "bar"; 

a.append(b, 0, 2); // a is now "fooba"; 

在C#中我也試過用StringBuilder,但沒有運氣。

回答

5

.NET中的字符串是不可變的。一旦創建了一個字符串,就不能修改它。但是,您可以創建級聯一個新的字符串,並將其重新分配給同一個變量:

string a = "foo"; 
string b = "bar"; 

a = a + b.Substring(0, 2); // a is now "fooba"; 
+0

工程就像一個魅力!謝謝。 :) – 2011-05-26 19:58:25

4
string a = "foo"; 
string b = "bar"; 

var sb = new StringBuilder(); 
sb.append(a); 
sb.append(b.SubString(0,2)); 

string res = sb.ToString(); // res = "fooba" 
+0

太好了。謝謝! – 2011-05-26 19:59:12

2

嘗試做

string aa = "foo"; 
      string bb = "bad"; 
      bb= string.Concat(aa, bb.Substring(0, 2)); 
4

如果你喜歡冒險的感覺,你也可以寫一個擴展方法:

public static class MyStringExtensions 
{ 
    public static string Append(this string original, string textToAdd, int length) 
    { 
     if (length <= 0) 
     { 
      return original; 
     } 

     var len = (textToAdd.Length < length) 
         ? textToAdd.Length 
         : length; 

     return original + textToAdd.Substring(0, len); 
    } 
} 

然後使用它,你會是這樣的:

string a = "foo".Append("bar", 2); 

string a = "foo"; 
string b = "bar"; 
string c = a.Append(b, 2); 

這也可使錯誤/異常處理在中央位置的很好的優勢。

+0

現在,這真的很好!謝謝! :) – 2011-05-26 20:22:47

+0

絕對是c#的一個很好的功能。 – 2011-05-26 20:31:13

相關問題