Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Enumerable.Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>)

 

Data di pubblicazione: ottobre 2016

Applica una funzione accumulatore una sequenza. Il valore di inizializzazione specificato viene usato come valore iniziale dell'accumulatore e la funzione specificata viene usata per selezionare il valore risultante.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in 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
)

Parametri

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

Un IEnumerable<T> su cui aggregare.

seed
Type: TAccumulate

Valore iniziale dell'accumulatore.

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

Funzione accumulatore da richiamare per ogni elemento.

resultSelector
Type: System.Func<TAccumulate, TResult>

Una funzione per trasformare il valore finale dell'accumulatore nel valore risultante.

Valore restituito

Type: TResult

Il valore finale trasformato dell'accumulatore.

Parametri tipo

TSource

Tipo degli elementi di source.

TAccumulate

Tipo del valore dell'accumulatore.

TResult

Il tipo del valore risultante.

Exception Condition
ArgumentNullException

Il parametro source, il parametro func o il parametro resultSelector è null.

Il Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) metodo rende più semplice eseguire un calcolo su una sequenza di valori. Questo metodo funziona chiamando func una volta per ogni elemento in source. Ogni volta che func viene chiamato, Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) passa sia l'elemento nella sequenza e un valore aggregato (come il primo argomento func). Il valore di seed parametro viene utilizzato come valore aggregato iniziale. Il risultato di func sostituisce il precedente valore aggregato. Il risultato finale di func viene passato a resultSelector per ottenere il risultato finale di Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>).

Per semplificare le comuni operazioni di aggregazione, gli operatori di query standard includono anche un metodo di conteggio di utilizzo generale, Count<TSource>, e quattro i metodi di aggregazione numerica, vale a dire Min, Max, Sum, e Average.

Esempio di codice seguente viene illustrato come utilizzare Aggregate<TSource, TAccumulate, TResult> per applicare una funzione accumulatore e un selettore di risultato.

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. 

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: