firstWhere method

E firstWhere (bool test(E element), { E orElse() })
override

Returns the first element that satisfies the given predicate test.

Iterates through elements and returns the first to satisfy test.

If no element satisfies test, the result of invoking the orElse function is returned. If orElse is omitted, it defaults to throwing a StateError.

Implementation

E firstWhere(bool test(E element), {E orElse()}) {
  int length = this.length;
  for (int i = 0; i < length; i++) {
    E element = this[i];
    if (test(element)) return element;
    if (length != this.length) {
      throw new ConcurrentModificationError(this);
    }
  }
  if (orElse != null) return orElse();
  throw IterableElementError.noElement();
}