簡體   English   中英

C#:string []分隔字符串。 有一個單線程嗎?

[英]C#: string[] to delimited string. Is there a one-liner?

我更喜歡的是:

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

但是,沒有這樣的功能。 我查看了MSDN,沒有任何東西看起來像是一個執行相同操作的函數。 我看着StringBuilder,再一次,沒有什么能讓我感到高興。 有沒有人知道一個不是非常復雜的單線程,使數組成為一個分隔的字符串。 謝謝你們的幫助。

更新:哇,哈哈,我的壞。 我不停地看着陣列上的.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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM