maxBy<S, T> function

*<Null safety>*

S? maxBy <S, T>(Iterable<S> values, T orderBy(S?), {int? compare(T, T)})

Implementation

S? maxBy<S, T>(Iterable<S> values, T Function(S?) orderBy,
    {int? Function(T, T)? compare}) {
  compare ??= defaultCompare;

  S? maxValue;
  T? maxOrderBy;
  for (var element in values) {
    var elementOrderBy = orderBy(element);
    if (maxOrderBy == null || compare(elementOrderBy, maxOrderBy)! > 0) {
      maxValue = element;
      maxOrderBy = elementOrderBy;
    }
  }
  return maxValue;
}