# indexWhere method

int indexWhere (bool test(E element), [ int start = 0 ])

Returns the first index in the list that satisfies the provided `test`.

Searches the list from index `start` to the end of the list. The first time an object `o` is encountered so that `test(o)` is true, the index of `o` is returned.

    List<String> notes = ['do', 're', 'mi', 're'];
    notes.indexWhere((note) => note.startsWith('r'));       // 1
    notes.indexWhere((note) => note.startsWith('r'), 2);    // 3

Returns -1 if `element` is not found.

    notes.indexWhere((note) => note.startsWith('k'));    // -1

## Implementation

    int indexWhere(bool test(E element), [int start = 0]) {
      if (start < 0) start = 0;
      for (int i = start; i < this.length; i++) {
        if (test(this[i])) return i;
      }
      return -1;
    }