C#:string []分隔字符串.有一个单线程吗?

Xst*_*ity 25 c# arrays string delimited-text

我更喜欢的是:

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

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

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

kbr*_*ton 49

对于数组,您可以使用:

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

就个人而言,我使用的扩展方法可以应用于所有类型的可枚举集合:

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();
}
Run Code Online (Sandbox Code Playgroud)

...我用的是这样的:

strArray.Flatten(", ");
Run Code Online (Sandbox Code Playgroud)

  • 在NET4.0中,有一个`string.Join`重载可以用于任何`IEnumerable`集合,http://msdn.microsoft.com/en-us/library/dd992421.aspx (8认同)

Dav*_*ter 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));
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


Inc*_*ito 5

看看String.Join().

您的样本必须如下所示:

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