В C# есть несколько способов поставить разделитель через заданное количество элементов в строке. Ниже приведены два варианта решения.
Первый способ - использование цикла:
string[] elements = { "элемент1", "элемент2", "элемент3", "элемент4", "элемент5", "элемент6", "элемент7" }; string delimiter = ","; int elementsPerLine = 3; // количество элементов в строке var result = new StringBuilder(); for (int i = 0; i < elements.Length; i++) { result.Append(elements[i]); if ((i + 1) % elementsPerLine == 0 && i != elements.Length - 1) { result.Append(delimiter); } else if (i != elements.Length - 1) { result.Append(" "); } } string finalString = result.ToString(); Console.WriteLine(finalString);
В данном примере есть массив elements
, переменная delimiter
, которая содержит значение разделителя (в данном случае это запятая), и переменная elementsPerLine
, которая указывает, сколько элементов должно быть в одной строке.
Затем создаётся экземпляр класса StringBuilder
для построения результирующей строки. В цикле перебираются элементы массива elements
. Если текущий индекс делится на elementsPerLine
без остатка и это не последний элемент, то добавляется разделитель. В противном случае, добавляется пробел. В конце цикла созданная строка преобразуется в тип string
и выводится на консоль.
Второй способ - использование методов Linq:
string[] elements = { "элемент1", "элемент2", "элемент3", "элемент4", "элемент5", "элемент6", "элемент7" }; string delimiter = ","; int elementsPerLine = 3; // количество элементов в строке var result = string.Join(delimiter, elements.Select((x, i) => new { Value = x, Index = i })) .Replace($",{delimiter}", delimiter) .Split(delimiter) .Select((x, i) => new { Value = x, Group = i / elementsPerLine }) .GroupBy(x => x.Group) .Select(g => string.Join(" ", g.Select(x => x.Value))) .ToList(); string finalString = string.Join(Environment.NewLine, result); Console.WriteLine(finalString);
В данном примере метод Join
принимает разделитель и IEnumerable<string>
, созданное на основе массива elements
. Далее с помощью метода Select
добавляются индексы элементов. Затем вызываются методы Replace
, Split
, Select
, GroupBy
и Join
, чтобы разделить строку, сгруппировать элементы и повторно объединить их в строку. Наконец, результирующая строка выводится на консоль.