我更喜欢的是:
string[] strArray = {"Hi", "how", "are", "you"};
string strNew = strArray.Delimit(chDelimiter);
然而,没有这样的功能。我查看了MSDN,没有任何东西看起来像是一个执行相同操作的函数。我看着StringBuilder,再一次,没有什么能让我感到高兴。有没有人知道一个不是非常复杂的单线程,使数组成为一个分隔的字符串。谢谢你们的帮助。
更新:哇,哈哈,我的坏。我不停地看着阵列上的.Join,这让我感到害怕。我甚至没看过String.Join。多谢你们。一旦它允许我接受我将。提供帮助。
答案 0 :(得分:48)
对于数组,您可以使用:
string.Join(", ", strArray);
就个人而言,我使用的扩展方法可以应用于所有类型的可枚举集合:
public static string Flatten(this IEnumerable elems, string separator)
{
if (elems == null)
{
return null;
}
StringBuilder sb = new StringBuilder();
foreach (object elem in elems)
{
if (sb.Length > 0)
{
sb.Append(separator);
}
sb.Append(elem);
}
return sb.ToString();
}
......我这样使用:
strArray.Flatten(", ");
答案 1 :(得分:6)
您可以使用静态String.Join方法:
String strNew = String.Join(chDelimiter, strArray);
编辑:回复评论:
根据您的注释,您可以获取多个数组,将它们连接在一起,然后连接整个结果数组。您可以使用IEnumerable扩展方法Concat
来完成此操作。这是一个例子:
//define my two arrays...
string[] strArray = { "Hi", "how", "are", "you" };
string[] strArray2 = { "Hola", "como", "esta", "usted" };
//Concatenate the two arrays together (forming a third array) and then call join on it...
string strNew = String.Join(",", strArray.Concat(strArray2));
希望这有帮助!
答案 2 :(得分:5)
您的样本必须如下所示:
string delimiter = ","
string[] strArray = { "Hi", "how", "are", "you" };
string strNew = String.Join(delimiter, strArray);
答案 3 :(得分:4)
string[] strArray = {"Hi", "how", "are", "you"};
string strNew = String.Join("," strArray);
答案 4 :(得分:1)
在这种情况下,String.Join()可能是最简单的方法,你可以同样使用LINQ但
var comSeparatedStrings = strings.Aggregate((acc, item) => acc + ", " + item);