Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Queryable.Sum<TSource> méthode (IQueryable<TSource>, Expression<Func<TSource, Nullable<Double>>>)

 

Date de publication : novembre 2016

Calcule la somme de la séquence de nullable Double valeurs obtenues en appelant une fonction de projection sur chaque élément de la séquence d’entrée.

Espace de noms:   System.Linq
Assembly:  System.Core (dans System.Core.dll)

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

Paramètres

source
Type: System.Linq.IQueryable<TSource>

Une séquence de valeurs de type TSource.

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

Une fonction de projection à appliquer à chaque élément.

Valeur de retour

Type: System.Nullable<Double>

La somme des valeurs projetées.

Paramètres de type

TSource

Le type des éléments de source.

Exception Condition
ArgumentNullException

source ou selector a la valeur null.

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l’argument de type est un de le Func<T, TResult> types. Pour ces paramètres, vous pouvez transmettre une expression lambda et elle sera compilée en une Expression<TDelegate>.

Le Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Nullable<Double>>>) méthode génère un MethodCallExpression qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Nullable<Double>>>) lui-même comme une méthode générique construite. Il passe ensuite le MethodCallExpression à la Execute<TResult>(Expression) méthode de le IQueryProvider représenté par le Provider propriété de le source paramètre.

Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expression qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Nullable<Double>>>) dépend de l’implémentation du type de le source paramètre. Le comportement attendu est qu’il appelle selector sur chaque élément de source et retourne la somme des valeurs résultantes.

L’exemple de code suivant montre comment utiliser Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Double>>) à la somme des valeurs projetées d’une séquence.

System_CAPS_noteRemarque

Cet exemple de code utilise une surcharge de cette méthode surchargée qui est différente de la surcharge spécifique décrite par cette rubrique. Pour adapter l’exemple à cette rubrique, modifiez le corps de la fonction 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
*/

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 3.5
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.1
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: