minMax static method

MinMaxResult minMax(
  1. Iterable<Hora> dates
)

Gets both min and max from a list.

Throws StateError if the list is empty.

Implementation

static MinMaxResult minMax(Iterable<Hora> dates) {
  if (dates.isEmpty) {
    throw StateError('Cannot find min/max of empty collection');
  }

  final iterator = dates.iterator..moveNext();
  var minVal = iterator.current;
  var maxVal = iterator.current;

  while (iterator.moveNext()) {
    final current = iterator.current;
    if (current.isBefore(minVal)) minVal = current;
    if (current.isAfter(maxVal)) maxVal = current;
  }

  return MinMaxResult(min: minVal, max: maxVal);
}