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

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

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

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

Списки в С# это что-то вроде «продвинутых массивов» (в основе списков те же массивы, как правило),
с которыми можно выполнять те же действия, что и с обычными массивами. Но у списков в 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# можно как минимум тремя способами.
Как видно из примеров выше, самый простой — это первый способ, хотя второй и третий предоставляют возможность
для дополнительной промежуточной обработки значения перед объединением его с остальной строкой.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий