Склеить массив с переходом на новую строку от первого элемента
Основываясь на инфу с этого сайта https://stackoverflow.com/questions/59217/merging-two-arrays-in-net
int[] front = { 1 };//данные в массиве изменил для простоты...
int[] back = { 5, 6, 7, 8 };
int[] combined = front.Concat(back).ToArray();
в результате будет так:
1
5
6
7
8
Но как быть если нужен такой результат:
15
16
17
18
Не прибегая к двум форичам ?
Ответы (1 шт):
Автор решения: return
→ Ссылка
Ядро
var combined = new int[front.Length * back.Length];
for (var i = 0; i < front.Length; i++)
for (var j = 0; j < back.Length; j++)
combined[i * back.Length + j] = front[i] * 10 + back[j];
Вывод
for (var i = 0; i < front.Length; i++)
{
for (var j = 0; j < back.Length - 1; j++)
{
Console.Write(combined[(i * back.Length + j)].ToString("D2"));
Console.Write(' ');
}
Console.Write(combined[(i * back.Length + back.Length - 1)].ToString("D2"));
Console.WriteLine();
}
Оптимизированный вывод
var buf = new char[2];
for (var i = 0; i < front.Length; i++)
{
for (var j = 0; j < back.Length - 1; j++)
{
var num = combined[(i * back.Length + j)];
if (!num.TryFormat(buf, "D2")) { /*throw*/ }
Console.Write(buf);
Console.Write(' ');
}
var num = combined[(i * back.Length + back.Length - 1)];
if (!num.TryFormat(buf, "D2")) { /*throw*/ }
Console.Write(buf);
Console.WriteLine();
}