将字符串数组转换为字符串

139 c# arrays string

我想将字符串数组转换为单个字符串.

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Run Code Online (Sandbox Code Playgroud)

我想要像"Hello World!"这样的东西.

Dav*_*ard 256

string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string.Join("", test);
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案.虽然,我建议使用`string.Join(string.Empty,test)`而不是使用`empty-paranthesis`. (4认同)
  • +1 - 我删除了Join中的空格以使其正确,正如@davidg所指出的那样 (3认同)
  • 我还需要在我的字符串(昏迷和空间)之间放一个分隔符,所以我使用了:`var separator =",";``string.Join(separator,test);` (2认同)

Qua*_*yst 28

稍微比使用已经提到的使用的选项Join()的方法是CONCAT()方法.它不需要空的分隔符参数Join().例:

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

string result = String.Concat(test);
Run Code Online (Sandbox Code Playgroud)

因此它可能更快.


dav*_*idg 20

尝试:

String.Join("", test);
Run Code Online (Sandbox Code Playgroud)

应该返回一个将两个元素连接在一起的字符串.""表示您希望字符串连接在一起而不使用任何分隔符.


ePa*_*dit 15

一个简单的string.Concat()就是你所需要的.

string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string result = string.Concat(test);
Run Code Online (Sandbox Code Playgroud)

如果你还需要添加一个分隔符(空格,逗号等),那么应该使用string.Join().

string[] test = new string[2];

test[0] = "Red";
test[1] = "Blue";

string result = string.Join(",", test);
Run Code Online (Sandbox Code Playgroud)

如果你必须在一个字符串数组上执行此操作,其元素数量多于string.Join()从性能的角度来看更好.只需将""(空白)参数作为分隔符.StringBuilder也可以用于性能,但它会使代码更长一些.

  • 如果要连接 4 个或更少的字符串,则“Concat”和“Join”比“StringBuilder”更快。 (2认同)

小智 9

在接受的答案中, String.Join 就其用法而言并不是最佳实践。应该使用 String.Concat,因为 OP 在第一项中包含尾随空格:“Hello”(而不是使用空分隔符)。

但是,由于 OP 要求结果“Hello World!”,因此 String.Join 仍然是合适的方法,但尾随空格应移至分隔符。

// string[] test = new string[2];

// test[0] = "Hello ";
// test[1] = "World!";

string[] test = { "Hello", "World" }; // Alternative array creation syntax 
string result = String.Join(" ", test);
Run Code Online (Sandbox Code Playgroud)


viv*_*una 8

Aggregate也可以用于同样的用途。

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
Run Code Online (Sandbox Code Playgroud)