Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Enumerable.Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>)

 

Publicado: octubre de 2016

Aplica una función de acumulador a una secuencia. El valor de inicialización especificado se utiliza como valor inicial del acumulador y la función especificada se utiliza para seleccionar el valor resultante.

Espacio de nombres:   System.Linq
Ensamblado:  System.Core (en System.Core.dll)

public static TResult Aggregate<TSource, TAccumulate, TResult>(
	this IEnumerable<TSource> source,
	TAccumulate seed,
	Func<TAccumulate, TSource, TAccumulate> func,
	Func<TAccumulate, TResult> resultSelector
)

Parámetros

source
Type: System.Collections.Generic.IEnumerable<TSource>

Un IEnumerable<T> para agregar.

seed
Type: TAccumulate

Valor de inicio del acumulador.

func
Type: System.Func<TAccumulate, TSource, TAccumulate>

Función de acumulador que se va a invocar en cada elemento.

resultSelector
Type: System.Func<TAccumulate, TResult>

Función que va a transformar el valor final del acumulador en el valor del resultado.

Valor devuelto

Type: TResult

El valor final del acumulador transformado.

Parámetros de tipo

TSource

Tipo de los elementos de source.

TAccumulate

Tipo del valor del acumulador.

TResult

Tipo del valor resultante.

Exception Condition
ArgumentNullException

source o func o resultSelector es null.

El Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) método simplifica la realizan un cálculo sobre una secuencia de valores. Este método funciona llamando a func una vez para cada elemento de source. Cada vez que func se llama, Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) pasa el elemento de la secuencia y un valor agregado (como primer argumento para func). El valor de la seed parámetro se utiliza como valor agregado inicial. El resultado de func reemplaza el valor agregado anterior. El resultado final de func se pasa a resultSelector para obtener el resultado final de Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>).

Para simplificar las operaciones comunes de agregación, los operadores de consulta estándar también incluyen un método de recuento de propósito general, Count<TSource>, y cuatro métodos de agregación numérica, es decir, Min, Max, Sum, y Average.

En el ejemplo de código siguiente se muestra cómo utilizar Aggregate<TSource, TAccumulate, TResult> para aplicar una función de acumulador y un selector de resultados.

string[] fruits = { "apple", "mango", "orange", "passionfruit", "grape" };

// Determine whether any string in the array is longer than "banana".
string longestName =
    fruits.Aggregate("banana",
                    (longest, next) =>
                        next.Length > longest.Length ? next : longest,
    // Return the final result as an upper case string.
                    fruit => fruit.ToUpper());

Console.WriteLine(
    "The fruit with the longest name is {0}.",
    longestName);

// This code produces the following output:
//
// The fruit with the longest name is PASSIONFRUIT. 

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 3.5
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: