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

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

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

Однако такой функции нет. Я просмотрел MSDN и ничего не смотрел на меня как на функцию, которая выполняла бы то же действие. Я посмотрел на StringBuilder, и опять ничего не выделялось мне. Кто-нибудь знает не слишком сложную строку, чтобы сделать массив строкой с разделителями. Спасибо за помощь ваших парней. ОБНОВЛЕНИЕ: Ух ты, лол, мой плохой. Я продолжал смотреть на .Join на самом массиве, и он чертовски меня раздражал. Я даже не смотрел на String.Join. Спасибо, парни. Как только это позволит мне принять, я приму. Точная помощь.

25
задан XstreamINsanity 24 August 2010 в 15:49
поделиться

5 ответов

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

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(", ");
49
ответ дан 28 November 2019 в 18:17
поделиться

Вы можете использовать статический метод String.Join :

String strNew = String.Join (chDelimiter, strArray);


EDIT: В ответ на комментарий : Основываясь на вашем комментарии, вы можете взять несколько массивов, объединить их вместе, а затем объединить весь результирующий массив. Это можно сделать с помощью метода расширения 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));

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

6
ответ дан 28 November 2019 в 18:17
поделиться

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

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

        string delimiter = ","
        string[] strArray = { "Hi", "how", "are", "you" };
        string strNew = String.Join(delimiter, strArray);
5
ответ дан 28 November 2019 в 18:17
поделиться

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

var comSeparatedStrings = strings.Aggregate((acc, item) => acc + ", " + item);
1
ответ дан 28 November 2019 в 18:17
поделиться

Использовать String.Join

string[] strArray = {"Hi", "how", "are", "you"};
string strNew = String.Join("," strArray);
4
ответ дан 28 November 2019 в 18:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: