这是一个非常基本的问题,但在这里它是:C#中是否有一个字符串方法,它将字符串中的一些字符添加到另一个字符串中?在C ++ std :: string类中,有一个append方法有三个参数:source string,indexStart,offset。
string a = "foo";
string b = "bar";
a.append(b, 0, 2); // a is now "fooba";
在C#中,我也尝试使用StringBuilder,但没有运气。
答案 0 :(得分:5)
.NET中的字符串是不可变的。创建字符串后,您无法对其进行修改。但是,您可以通过连接创建新字符串,并将其重新分配给同一个变量:
string a = "foo";
string b = "bar";
a = a + b.Substring(0, 2); // a is now "fooba";
答案 1 :(得分: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"
答案 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);
这也具有允许在中心位置进行错误/异常处理的好处。
答案 3 :(得分:2)
尝试
string aa = "foo";
string bb = "bad";
bb= string.Concat(aa, bb.Substring(0, 2));