description

# takeWhile method

Iterable<E> takeWhile(

1. bool test(
   1. E element
   )

)
override

Creates a lazy iterable of the leading elements satisfying `test`.

The filtering happens lazily. Every new iterator of the returned iterable starts iterating over the elements of `this`.

The elements can be computed by stepping through iterator until an element is found where `test(element)` is false. At that point, the returned iterable stops (its `moveNext()` returns false).

Example:

    final numbers = <int>[1, 2, 3, 5, 6, 7];
    var result = numbers.takeWhile((x) => x < 5); // (1, 2, 3)
    result = numbers.takeWhile((x) => x != 3); // (1, 2)
    result = numbers.takeWhile((x) => x != 4); // (1, 2, 3, 5, 6, 7)
    result = numbers.takeWhile((x) => x.isOdd); // (1)

## Implementation

    Iterable<E> takeWhile(bool test(E element)) {
      return TakeWhileIterable<E>(this, test);
    }