averageBy method
Returns the average of values returned by selector for all elements in
the collection.
Implementation
double averageBy(num Function(E element) selector) {
  var count = 0;
  num sum = 0;
  for (final current in this) {
    sum += selector(current);
    count++;
  }
  if (count == 0) {
    throw StateError('No elements in collection');
  } else {
    return sum / count;
  }
}