minByOrNull<R extends Comparable> method

E? minByOrNull<R extends Comparable>(
  1. R selector(
    1. E element
    )
)

Returns the first element yielding the smallest value of the given selector function or null if there are no elements.

Implementation

E? minByOrNull<R extends Comparable>(R Function(E element) selector) {
  if (isEmpty) return null;

  final iterator = this.iterator..moveNext();
  E minElement = iterator.current;
  R minValue = selector(minElement);

  while (iterator.moveNext()) {
    final current = iterator.current;
    final value = selector(current);

    if (minValue.compareTo(value) > 0) {
      minElement = current;
      minValue = value;
    }
  }

  return minElement;
}