lastWhereOrAdd<V> function

V lastWhereOrAdd<V>(
  1. List<V> list,
  2. bool test(
    1. V element
    ),
  3. OrAdd<V> orAdd
)

Returns the last element that satisfies the test if there isn't one add a new one and return it.

Implementation

V lastWhereOrAdd<V>(
    List<V> list, bool Function(V element) test, OrAdd<V> orAdd) {
  V? result;
  for (var element in list) {
    if (test(element)) result = element;
  }
  if (result == null) {
    result = orAdd();
    list.add(result!);
  }
  return result;
}