【发布时间】:2011-06-18 00:05:53
【问题描述】:
我想将字符串数组转换为单个字符串。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
我想要“Hello World!”之类的东西
【问题讨论】:
我想将字符串数组转换为单个字符串。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
我想要“Hello World!”之类的东西
【问题讨论】:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string.Join("", test);
【讨论】:
var separator = ", ";string.Join(separator , test);
string.Join(string.Empty, test) 而不是empty-paranthesis。
比使用已经提到的Join() 方法稍快 的选项是Concat() 方法。它不需要像Join() 那样的空分隔符参数。示例:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
因此它可能更快。
【讨论】:
Concat 更好,在Join 的内部代码中,它会在每个项目后附加分隔符。但是Concat没有这样的代码,比Join更简单直接。这是最合适的答案。
你需要一个简单的 string.Concat()。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
如果您还需要添加分隔符(空格、逗号等),则应使用 string.Join()。
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
如果您必须在具有数百个元素的字符串数组上执行此操作,那么从性能的角度来看,string.Join() 会更好。只需给出一个“”(空白)参数作为分隔符。也可以使用 StringBuilder 以提高性能,但它会使代码变长一些。
【讨论】:
Concat 和 Join 比 StringBuilder 快,如果你有 4 个或更少的字符串要连接。
试试:
String.Join("", test);
它应该返回一个将两个元素连接在一起的字符串。 "" 表示您希望将字符串连接在一起而不使用任何分隔符。
【讨论】:
"Hello " 已经有一个尾随空格。如果空间不存在,那么您是正确的,使用" " 作为分隔符会更有意义。
Aggregate也可以用于相同的。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
【讨论】:
String.Join 的极其浪费的方法。请阅读stackoverflow.com/questions/217805/… 了解Aggregate 的正确变体。
string ConvertStringArrayToString(string[] array)
{
//
// Concatenate all the elements into a StringBuilder.
//
StringBuilder strinbuilder = new StringBuilder();
foreach (string value in array)
{
strinbuilder.Append(value);
strinbuilder.Append(' ');
}
return strinbuilder.ToString();
}
【讨论】:
string.Join(" ", array)(除了你的添加尾随空格)。为什么不直接使用图书馆里的那个?
在接受的答案中,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);
【讨论】:
我用这种方式让我的项目更快:
RichTextBox rcbCatalyst = new RichTextBox()
{
Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();
return text;
RichTextBox.Text 会自动将您的数组转换为多行字符串!
【讨论】:
像这样:
string str= test[0]+test[1];
你也可以使用循环:
for(int i=0; i<2; i++)
str += test[i];
【讨论】: