Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

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

Calcule la somme de la séquence des valeurs Int64 Nullable 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 Nullable<long> Sum<TSource>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, Nullable<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, Nullable<Int64>>>
Fonction de projection à appliquer à chaque élément.

Valeur de retour

Type : System.Nullable<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, Nullable<Int64>>>) génère une MethodCallExpression qui représente l'appel de Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource, Nullable<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, Nullable<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, 3.5

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Pris en charge dans :

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

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.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.