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>)

 

Applica una funzione accumulatore a una sequenza.Il valore di inizializzazione specificato viene utilizzato come valore iniziale dell'accumulatore e la funzione specificata viene utilizzata 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

Oggetto IEnumerable<T> a cui aggregare.

seed

Valore iniziale dell'accumulatore.

func

Funzione accumulatore da richiamare per ogni elemento.

resultSelector

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

Valore restituito

Type: TResult

Il valore finale trasformato dell'accumulatore.

Parametri di tipo

TSource

Tipo degli elementi di source.

TAccumulate

Tipo del valore dell'accumulatore.

TResult

Il tipo del valore risultante.

Exception Condition
ArgumentNullException

source o func o resultSelector è null.

Il metodo Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) semplifica l’esecuzione del calcolo su una sequenza di valori.Questo metodo chiama func una volta per ogni elemento in source.Ogni volta che viene chiamato func, il metodo Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) passa sia l’elemento dalla sequenza che un valore aggregato (come primo argomento a func).Il valore del parametro seed 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 generico, Count<TSource> e quattro metodi di aggregazione numerici, vale a dire Min, Max, Sume Average.

Nell'esempio di codice riportato di seguito 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 4.5
.NET Framework
Disponibile da 3.5
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: