Использование LINQ (или morelinq), как разделить массив неизвестной длины (но небольшой) на четные множества с меньшими (неравномерными) наборами в конце, но поддерживать порядок в каждом списке ?Сделать (в основном) наборы равной длины
var array = new int[] {1,2,3,4}; var sets = array.something(3);
Ищете результат: {1,2},{3},{4}
{1} -> {1},{},{}
{1,2} -> {1},{2},{}
{1,2,3} -> {1},{2},{3}
{1,2,3,4} -> {1,2},{3},{4}
{1,2,3,4,5} -> {1,2},{3,4},{5}
{1,2,3,4,5,6} -> {1,2},{3,4},{5,6}
Мой исходный код:
const int MaxPerColumn = 6;
var perColumn = (list.Count + columnCount - 1)/columnCount;
for (var col = 1; col <= columnCount; col++)
{
var items = list.Skip((col - 1) * columnCount).Take(perColumn).Pad(MaxPerColumn, "").ToList();
// DoSomething
}
, который не работает, потому что со списком {1,2,3,4}
это создало {1,2},{3,4},{}
, то почему {1,2,3.4} будет {1,2}, {3}, {4} и {1,2,3,4,5,6} быть {1,2}, {3, 4 }, {5,6}. Шаблон не выстраивается в линию? – Dispersia
Я думаю, вы должны прямо указать, что ваши примеры предназначены для создания 3-х групп. –
Что вы пытались сделать? Какие проблемы у вас возникли с вашей реализацией? – Servy