chunk<T> function

List<List<T>> chunk<T>(
  1. Iterable<T>? list, [
  2. int size = 1
])

Implementation

List<List<T>> chunk<T>(Iterable<T>? list, [int size = 1]) {
  if (list == null || list.isEmpty) {
    return [];
  }
  List<List<T>> rl = [];
  List<T> tmp = [];

  for (T v in list) {
    if (tmp.length >= size) {
      rl.add(tmp);
      tmp = [];
    }
    tmp.add(v);
  }
  if (tmp.isNotEmpty) {
    rl.add(tmp);
  }
  return rl;
}