indexOfElements method

int indexOfElements(
  1. List<T> elements, [
  2. int start = 0
])

Finds the starting index of a subsequence within this list.

Searches for the first occurrence of elements in this list, starting at start. Returns the starting index if found, or -1 if not found.

Parameters:

  • elements The subsequence to find
  • start Starting index for search (default: 0)

Returns: Index where subsequence starts, or -1 if not found

Implementation

int indexOfElements(List<T> elements, [int start = 0]) {
  if (elements.isEmpty) return start;
  var end = length - elements.length;
  if (start > end) return -1;
  var first = elements.first;
  var pos = start;
  while (true) {
    pos = indexOf(first, pos);
    if (pos < 0 || pos > end) return -1;
    for (var i = 1; i < elements.length; i++) {
      if (this[pos + i] != elements[i]) {
        pos++;
        continue;
      }
    }
    return pos;
  }
}