Skip to content

Instantly share code, notes, and snippets.

@iapicca
Created July 26, 2022 20:48
Show Gist options
  • Select an option

  • Save iapicca/c6b0defa700f8003103c51fb120b74f6 to your computer and use it in GitHub Desktop.

Select an option

Save iapicca/c6b0defa700f8003103c51fb120b74f6 to your computer and use it in GitHub Desktop.
pagination example
List<int> intUntil(int n) => [for (var i = 0; i < n; ++i) i];
extension PaginateX<T> on List<T> {
Iterable<Iterable<T>> paginateBy(int n) sync* {
final floor = (length / n).floor();
for (var i = 0; i < floor; ++i) {
yield getRange(i * n, (i + 1) * n);
}
final rem = length % n;
if (rem > 0) {
yield getRange(length - rem, length);
}
}
}
void main() {
for (final list in intUntil(100).paginateBy(11)) {
print(list);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment