Los
Aggregate
Operators, nos permiten realizar operaciones matemáticas de una
temática simple sobre los elementos que forman una colección. Normalmente el
resultado de estos, es un valor numérico, aunque no siempre es obligatorio.
La ejecución de todos estos operadores es inmediata, y se
realiza justo en el momento de realizar la llamada, por lo que ninguno de ellos
tiene ejecución
diferida
o perezosa.
En este conjunto de operadores, se diferencian tres tipos.
Un primer tipo muy simple, compuesto por Count
y LongCount. Un segundo grupo también
bastante sencillo compuesto por Max,
Min, Sum y Average
y un tercero compuesto por el operador Aggregate,
más complejo y potente. El primer grupo, posee sobrecargas sin parámetros, para
secuencias numéricas sencillas y sobrecargas con filtrado (parámetro Func<T, bool>), que purifican
la secuencia antes de aplicar el cálculo. Los métodos correspondientes al
segundo grupo, poseen un número bastante considerable de sobrecargas, que van
en concordancia con el tipo de datos sobre el que se aplica el cálculo,
normalmente int, int?, double, doublé?,
decimal, decimal?, long
y long? En afinidad con su delegado genérico
Func<T, int>, Func<T, int?>, Func<T, double> …