using System;
using System.Linq;
using System.Collections.Generic;
public class Test
{
static List<List<T>> toMatrix<T>(List<T> list, int elementsPerSubArray)
{
var matrix = new List<List<T>>();
int i=0, k = -1;
for ( ; i < list.Count; i++)
{
if (i % elementsPerSubArray == 0)
{
k++;
matrix.Add(new List<T>());
}
matrix[k].Add(list[i]);
}
return matrix;
}
public static void Main()
{
List<int> input = new List<int> { 1, 2, 3, 4, 5, };
var result = toMatrix(input, 2);
foreach (List<int> outer in result)
Console.WriteLine(string.Join(
", ",
outer.Select(item => item.ToString()).ToArray()
));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7Cgkgc3RhdGljIExpc3Q8TGlzdDxUPj4gdG9NYXRyaXg8VD4oTGlzdDxUPiBsaXN0LCBpbnQgZWxlbWVudHNQZXJTdWJBcnJheSkgCiAgICAgICAgewogICAgICAgICAgICB2YXIgbWF0cml4ID0gbmV3IExpc3Q8TGlzdDxUPj4oKTsKICAgICAgICAgICAgaW50IGk9MCwgayA9IC0xOwogICAgICAgICAgICBmb3IgKCA7IGkgPCBsaXN0LkNvdW50OyBpKyspIAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoaSAlIGVsZW1lbnRzUGVyU3ViQXJyYXkgPT0gMCkgCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaysrOwogICAgICAgICAgICAgICAgICAgIG1hdHJpeC5BZGQobmV3IExpc3Q8VD4oKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBtYXRyaXhba10uQWRkKGxpc3RbaV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBtYXRyaXg7CiAgICAgICAgfQogICAgICAgIAoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCUxpc3Q8aW50PiBpbnB1dCA9IG5ldyBMaXN0PGludD4geyAxLCAyLCAzLCA0LCA1LCB9OwogICAgICAgIHZhciByZXN1bHQgPSB0b01hdHJpeChpbnB1dCwgMik7CiAgICAgICAgICAgIGZvcmVhY2ggKExpc3Q8aW50PiBvdXRlciBpbiByZXN1bHQpCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShzdHJpbmcuSm9pbigKICAgICAgICAgICAgICAgIAkiLCAiLCAKICAgICAgICAgICAgICAgIAlvdXRlci5TZWxlY3QoaXRlbSA9PiBpdGVtLlRvU3RyaW5nKCkpLlRvQXJyYXkoKQogICAgICAgICAgICAJKSk7CiAgICAgICAgICAgICAgICAKCX0KfQ==