這是一個非常基本的問題,但這裏有一個問題:C#中是否存在一個字符串方法,它將一串字符添加到另一個字符串中?在C++ std :: string類中,有append方法有三個參數:源字符串,indexStart,偏移量。將一定數量的字符從一個字符串附加到另一個字符串
string a = "foo";
string b = "bar";
a.append(b, 0, 2); // a is now "fooba";
在C#中我也試過用StringBuilder,但沒有運氣。
這是一個非常基本的問題,但這裏有一個問題:C#中是否存在一個字符串方法,它將一串字符添加到另一個字符串中?在C++ std :: string類中,有append方法有三個參數:源字符串,indexStart,偏移量。將一定數量的字符從一個字符串附加到另一個字符串
string a = "foo";
string b = "bar";
a.append(b, 0, 2); // a is now "fooba";
在C#中我也試過用StringBuilder,但沒有運氣。
.NET中的字符串是不可變的。一旦創建了一個字符串,就不能修改它。但是,您可以創建級聯一個新的字符串,並將其重新分配給同一個變量:
string a = "foo";
string b = "bar";
a = a + b.Substring(0, 2); // a is now "fooba";
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"
太好了。謝謝! – 2011-05-26 19:59:12
嘗試做
string aa = "foo";
string bb = "bad";
bb= string.Concat(aa, bb.Substring(0, 2));
如果你喜歡冒險的感覺,你也可以寫一個擴展方法:
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);
這也可使錯誤/異常處理在中央位置的很好的優勢。
現在,這真的很好!謝謝! :) – 2011-05-26 20:22:47
絕對是c#的一個很好的功能。 – 2011-05-26 20:31:13
工程就像一個魅力!謝謝。 :) – 2011-05-26 19:58:25