Способы объединения списка в строку в С#

Способы объединения списка в строку в С#

Доброго времени суток! В данной статье мы рассмотрим способы объединения списка строк в одну строку с использованием произвольного разделителя.

Списки в С# это что-то вроде «продвинутых массивов» (в основе списков те же массивы, как правило), с которыми можно выполнять те же действия, что и с обычными массивами. Но у списков в C# есть одно важное преимущество — это автоматическое расширение собственного размере по мере того как элементы добавляются в список, тогда как массивы имеют фиксированный размер.

Итак, перейдем непосредственно к коду:

Способ первый — использование метода String.Join()

using System;
using System.Collections.Generic;

public class JoinListExample
{
    public static void Main()
    {
        // список строк
        List<string> list = new List<string>() { "сайт", "My", "Rusakov", "Ru" };
        // разделитель
        char delimeter = ' / ';

        // объединяем список в строку
        string str = String.Join(delimeter, list);

        Console.WriteLine(str);
    }
}

/*
    Вывод: сайт / My / Rusakov
*/

Способ второй — использование метода Enumerable.Aggregate()


using System;
using System.Collections.Generic;

// подключаем пространство для использования метода Enumerable.Aggregate()
using System.Linq;

public class JoinListExample
{
    public static void Main()
    {
        // список строк
        List<string> list = new List<string>() { "сайт", "My", "Rusakov", "Ru" };
        // разделитель
        char delimeter = ' / ';

        // объединяем список в строку
        string str = list.Aggregate((item1, item2) => item1 + delimeter + item2);

        Console.WriteLine(str);
    }
}

Способ третий — использование класса StringBuilder


using System;
using System.Collections.Generic;
using System.Text;

public class JoinListExample
{
    public static void Main()
    {
        List<string> list = new List<string>() { "сайт", "My", "Rusakov", "Ru" };
        char delimeter = ' / ';

        // "ящик, куда будем складывать отдельные значения"
        StringBuilder stringBuilder = new StringBuilder();

        // проходимся циклом по списку
        for (int i = 0; i < list.Count; i++)
        {
            // добавляем значение из списка в класс-хранилище
            stringBuilder.Append(list[i]);

            // если мы добавляем не последний элемент из списка - то добавляем разделитель
            if (i < list.Count - 1) {
                stringBuilder.Append(delimeter);
            }
        }

        // в конце преобразуем класс в строку
        string str = stringBuilder.ToString();
        Console.WriteLine(str);
    }
}

Таким образом, объединить коллекцию значений в строку по разделителю в C# можно как минимум тремя способами. Как видно из примеров выше, самый простой — это первый способ, хотя второй и третий предоставляют возможность для дополнительной промежуточной обработки значения перед объединением его с остальной строкой.

Источник

Статьи по теме

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Back to top button