Подтвердить что ты не робот

С#: строка [] в строку с разделителями. Есть ли один лайнер?

Я бы предпочел что-то вроде:

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

Однако такой функции нет. Я просмотрел MSDN и ничего не смотрел на меня как на функцию, которая выполняла бы те же действия. Я посмотрел на StringBuilder, и снова ничего не выдалось мне. Кто-нибудь знает не слишком сложный один лайнер, чтобы сделать массив разделительной строкой. Спасибо за помощь вашим парням.

ОБНОВЛЕНИЕ: Вау, Лол, я плохой. Я все время смотрел на "Джойн" на самом массиве, и это меня избило. Я даже не смотрел на String.Join. Спасибо, парни. Как только это позволит мне принять меня. Предоставьте помощь.

4b9b3361

Ответ 1

Для массивов вы можете использовать:

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

Ответ 2

Вы можете использовать статический метод 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));

Надеюсь, это поможет!

Ответ 3

Посмотрите String.Join().

Ваш образец должен выглядеть следующим образом:

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

Ответ 4

Используйте String.Join

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

Ответ 5

в этом случае String.Join(), вероятно, самый простой способ, вы можете использовать LINQ, хотя

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