Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

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

Calcule la somme de la séquence de valeurs Int64 obtenue 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 long Sum<TSource>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, long>> selector
)

Paramètres de type

TSource

Type des éléments de source.

Paramètres

source
Type : System.Linq.IQueryable<TSource>
Séquence de valeurs de type TSource.
selector
Type : System.Linq.Expressions.Expression<Func<TSource, Int64>>
Fonction de projection à appliquer à chaque élément.

Valeur de retour

Type : System.Int64
Somme des valeurs projetées.

Remarque sur l'utilisation

En Visual Basic et C#, vous pouvez appeler cette méthode comme une méthode d'instance sur n'importe quel objet de type IQueryable<TSource>. Lorsque vous utilisez la syntaxe des méthodes d'instance pour appeler cette méthode, omettez le premier paramètre. Pour plus d'informations, consultez Méthodes d'extension (Visual Basic) ou Méthodes d'extension (Guide de programmation C#).

ExceptionCondition
ArgumentNullException

source ou selector est null.

OverflowException

La somme est supérieure à MaxValue.

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

La méthode Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Int64>>) génère une MethodCallExpression qui représente l'appel de Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Int64>>) à lui-même en tant que méthode générique construite. Il passe alors la MethodCallExpression à la méthode Execute<TResult>(Expression) du IQueryProvider représenté par la propriété Provider du paramètre source.

Le comportement de requête résultant de l'exécution d'une arborescence de l'expression qui représente l'appel de Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Int64>>) dépend de l'implémentation du type du paramètre source. 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>>) pour calculer la somme des valeurs projetées d'une séquence.

RemarqueRemarque

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 étendre l'exemple à cette rubrique, modifiez le corps de la fonction sélecteur.


            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
            */



.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft