chunks method

List<List<E>> chunks(
  1. int size
)

Splits the iterable into chunks of size size.

Implementation

List<List<E>> chunks(int size) {
  if (size <= 0) throw ArgumentError('Size must be positive');
  final chunks = <List<E>>[];
  final iterator = this.iterator;
  while (iterator.moveNext()) {
    final chunk = <E>[iterator.current];
    for (var i = 1; i < size && iterator.moveNext(); i++) {
      chunk.add(iterator.current);
    }
    chunks.add(chunk);
  }
  return chunks;
}