splitAtFirstWhere method

  1. @useResult
(List<T>, List<T>) splitAtFirstWhere(
  1. ElementPredicate<T> predicate
)

Splits at the first element where predicate is true. That element goes in the second list.

Implementation

@useResult
(List<T>, List<T>) splitAtFirstWhere(ElementPredicate<T> predicate) {
  final List<T> list = toList();
  for (int i = 0; i < list.length; i++) {
    if (predicate(list[i])) {
      return (list.sublist(0, i), list.sublist(i));
    }
  }
  return (list, <T>[]);
}