partion method

List<List<T>> partion(
  1. int size
)

Разбивает список на подсписки заданного размера size.

Если исходный список пуст или значение size меньше или равно нулю, возвращается пустой список.

Пример:

final numbers = [1, 2, 3, 4, 5, 6, 7];
final parts = numbers.partion(3);
// parts = [[1, 2, 3], [4, 5, 6], [7]]

Implementation

List<List<T>> partion(int size) {
  if (isEmpty || size <= 0) return [];

  final result = <List<T>>[];
  // Проходим по списку с шагом, равным размеру части.
  for (var i = 0; i < length; i += size) {
    // Вычисляем конечный индекс подсписка.
    final end = (i + size < length) ? i + size : length;
    // Добавляем подсписок в результирующий список.
    result.add(sublist(i, end));
  }
  return result;
}