2011-05-26 38 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

相关问题