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 Queryable.Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Double>>)

 

Data di pubblicazione: ottobre 2016

Calcola la somma della sequenza di Double valori ottenuti richiamando una funzione di proiezione su ogni elemento della sequenza di input.

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

public static double Sum<TSource>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, double>> selector
)

Parametri

source
Type: System.Linq.IQueryable<TSource>

Una sequenza di valori di tipo TSource.

selector
Type: System.Linq.Expressions.Expression<Func<TSource, Double>>

Una funzione di proiezione da applicare a ogni elemento.

Valore restituito

Type: System.Double

La somma dei valori previsti.

Parametri tipo

TSource

Tipo degli elementi di source.

Exception Condition
ArgumentNullException

source o selector è null.

Questo metodo contiene almeno un parametro di tipo Expression<TDelegate> il cui argomento di tipo è uno del Func<T, TResult> tipi. Per questi parametri, è possibile passare un'espressione lambda e verrà compilato in un Expression<TDelegate>.

Il Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Double>>) metodo genera un MethodCallExpression che rappresenta una chiamata Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Double>>) stesso come un metodo generico costruito. Passa quindi il MethodCallExpression per il Execute<TResult>(Expression) metodo il IQueryProvider rappresentato dal Provider proprietà del source parametro.

Il comportamento della query che si verifica in seguito all'esecuzione di una struttura ad albero dell'espressione che rappresenta una chiamata Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Double>>) dipende dall'implementazione del tipo di egli source parametro. Il comportamento previsto è che richiami selector su ogni elemento di source e restituisce la somma dei valori risultanti.

Esempio di codice seguente viene illustrato come utilizzare Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Double>>) per sommare i valori previsti di una sequenza.

System_CAPS_noteNota

In questo esempio di codice viene usato un overload di questo metodo diverso da quello specifico descritto in questo argomento. Per estendere l'esempio a questo argomento, modificare il corpo della funzione selector.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx3()
{
    List<Package> packages =
        new List<Package> 
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    // Calculate the sum of all package weights.
    double totalWeight = packages.AsQueryable().Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
    This code produces the following output:

    The total weight of the packages is: 83.7
*/

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.1
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: