averageE method
Calculates the average of all numerical values in the enumerable.
Applies a predefined averaging function to all values in the enumerable.
This method can only be called on an enumerable of a numerical type (num
,
int
, or double
). Otherwise an IncompatibleTypeError will be thrown.
For int
enumerables, the result will be an int
as well (the result of
an integer division between the sum and the number of elements). For num
and double
enumerables, the result will be a double
.
The averageE function will iterate over every element in the enumerable.
Implementation
T averageE() {
if (T != num && T != int && T != double) {
throw IncompatibleTypeError([num, int, double]);
}
if (T == num) {
return EnumerableReducers.AverageNum(this as Enumerable<num>) as T;
}
if (T == int) {
return EnumerableReducers.AverageInt(this as Enumerable<int>) as T;
}
if (T == double) {
return EnumerableReducers.AverageDouble(this as Enumerable<double>) as T;
}
throw UnexpectedStateError();
}