findIndex<T> function

Option<int> Function(ImmutableList<T>) findIndex<T>(
  1. Predicate<T> predicate
)

Returns a function that takes an ImmutableList<T> and searches for the index of the first element that satisfies the given predicate.

If an element is found that satisfies the predicate, the index of that element is returned wrapped in an Option<int>. If no element is found, None<int>() is returned.

Usage:

var myList = ImmutableList([1, 2, 3, 4, 5]);
var findIndexOfFirstEven = findIndex<int>((item) => item % 2 == 0);
var indexOption = findIndexOfFirstEven(myList); // Returns option containing index 1
  • Parameter predicate: The condition used to test each element.
  • Returns: A function that processes an ImmutableList<T> and returns an Option<int> containing the index of the first element that satisfies the given predicate, or None<int>() if no such element is found.

Implementation

option.Option<int> Function(ImmutableList<T>) findIndex<T>(
    Predicate<T> predicate) {
  return (ImmutableList<T> list) {
    final index = list.items.indexWhere(predicate);
    return index != -1 ? option.of(index) : option.None<int>();
  };
}