using System.Collections.Generic;
List<string> collection = new List<string>();
for (var i = 0; i < numberOfItems; i++)
collection.Add((i + 1).ToString());
for (var c = 0; c < numberOfColumns; c++)
Console.WriteLine("Items: " + numberOfItems+ ", Columns: " + numberOfColumns + ", Column: " + (c + 1) + ", Items in column: " + CalculateColumnItems(collection, numberOfColumns, c + 1));
private string CalculateColumnItems(List<string> collection, int numberOfColumns, int column)
int itemsPerColumn = (int)Math.Ceiling((double)collection.Count / numberOfColumns);
var result = collection.Cast<object>().Skip(itemsPerColumn * (column - 1)).Take(itemsPerColumn);
return string.Join(",", result);