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>(IEnumerable<TSource>, Func<TSource, TSource, TSource>)

 

Applica una funzione accumulatore a una sequenza.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static TSource Aggregate<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, TSource, TSource> func
)

Parametri

source

Oggetto IEnumerable<T> a cui aggregare.

func

Funzione accumulatore da richiamare per ogni elemento.

Valore restituito

Type: TSource

Valore finale dell'accumulatore.

Parametri di tipo

TSource

Tipo degli elementi di source.

Exception Condition
ArgumentNullException

source o func è null.

InvalidOperationException

source non contiene elementi.

Il metodo Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) semplifica l’esecuzione del calcolo su una sequenza di valori.Questo metodo viene utilizzato chiamando func una volta per ogni elemento in source tranne il primo.Ogni volta che viene chiamato func, il metodo Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) passa sia l’elemento dalla sequenza che un valore aggregato (come primo argomento a func).Il primo elemento di source viene utilizzato come valore aggregato iniziale.Il risultato di func sostituisce il precedente valore aggregato. Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) restituisce il risultato finale di func.

Questo overload del metodo Aggregate<TSource> non è appropriato per tutti i casi poiché utilizza il primo elemento di source come valore aggregato iniziale.Si dovrebbe scegliere un altro overload se il valore restituito deve includere solo gli elementi di source che soddisfano una determinata condizione.Ad esempio, questo overload non è affidabile se si vuole calcolare la somma dei numeri pari in source.Il risultato non sarà corretto se il primo elemento è dispari anziché pari.

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.

L'esempio di codice seguente illustra come invertire l'ordine delle parole in una stringa tramite Aggregate<TSource>.

string sentence = "the quick brown fox jumps over the lazy dog";

// Split the string into individual words.
string[] words = sentence.Split(' ');

// Prepend each word to the beginning of the 
// new sentence to reverse the word order.
string reversed = words.Aggregate((workingSentence, next) =>
                                      next + " " + workingSentence);

Console.WriteLine(reversed);

// This code produces the following output:
//
// dog lazy the over jumps fox brown quick the 

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: