C#:string 分隔字符串。 有一个单行class吗?

我更喜欢的是:

string[] strArray = {"Hi", "how", "are", "you"}; string strNew = strArray.Delimit(chDelimiter); 

但是,没有这样的function。 我查看了MSDN,没有任何东西看起来像是一个执行相同操作的函数。 我看着StringBuilder,再一次,没有什么能让我感到高兴。 有没有人知道一个不是非常复杂的单线程,使数组成为一个分隔的字符串。 谢谢你们的帮助。

更新:哇,哈哈,我的坏。 我不停地看着arrays上的.Join,这让我感到害怕。 我甚至没看过String.Join。 多谢你们。 一旦它允许我接受我将。 提供帮助。

对于数组,您可以使用:

 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(", "); 

您可以使用静态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)); 

希望这可以帮助!

看看String.Join() 。

您的样本必须如下所示:

  string delimiter = "," string[] strArray = { "Hi", "how", "are", "you" }; string strNew = String.Join(delimiter, strArray); 

使用String.Join

 string[] strArray = {"Hi", "how", "are", "you"}; string strNew = String.Join("," strArray); 

在这种情况下,String.Join()可能是最简单的方法,你可以同样使用LINQ

 var comSeparatedStrings = strings.Aggregate((acc, item) => acc + ", " + item);