indexWhere method

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

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;
}