string[] names = new string[6];
names[0] = "Person 1";
names[1] = "Person 2";
names[2] = "Person 3";
names[3] = "Person 4";
names[4] = "Person 5";
names[5] = "Person 6";
var result = Enumerable.Range(0, names.Length / 3)
.Select(i => new string[] { names[i], names[i+1], names[i+2] })
.ToArray();
Here this should create your string[][]
After that using StringBuilder
you can build your result:
StringBuilder sb = new StringBuilder();
sb.AppendLine("[My Windows Form. . . . . . . . . . . . . . . . [X]]");
sb.AppendLine("|GROUP A | GROUP B | GROUP C|");
foreach (var item in result)
{
sb.AppendLine($"|{item[0]}|{item[1]}|{item[2]}");
}
string result = sb.ToString();
Here: Full Example in DotNetFiddle
If you don't have i%3 == 0
items in the names, you can do it like this:
StringBuilder sb = new StringBuilder();
sb.AppendLine("[My Windows Form. . . . . . . . . . . . . . . . [X]]");
sb.AppendLine("|GROUP A | GROUP B | GROUP C|");
for (int i=0;i < names.Length; i++)
{
if((i+1) % 3 == 0)
{
sb.AppendLine($"|{names[i]}|");
}
else
{
sb.Append($"|{names[i]}");
}
}
string result = sb.ToString();