Способы объединения списка в строку в С#
			Доброго времени суток! В данной статье мы рассмотрим способы объединения списка строк в одну строку с использованием произвольного разделителя.
Списки в С# это что-то вроде "продвинутых массивов" (в основе списков те же массивы, как правило), с которыми можно выполнять те же действия, что и с обычными массивами. Но у списков в 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# можно как минимум тремя способами. Как видно из примеров выше, самый простой - это первый способ, хотя второй и третий предоставляют возможность для дополнительной промежуточной обработки значения перед объединением его с остальной строкой.
- 
					Создано 26.07.2022 13:22:49
					 - 
					
					Михаил Русаков				 
			
		
			
				
				
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.