Queryable.Sum Méthode

Définition

Calcule la somme d'une séquence de valeurs numériques.

Surcharges

Sum(IQueryable<Decimal>)

Calcule la somme d'une séquence de valeurs Decimal.

Sum(IQueryable<Double>)

Calcule la somme d'une séquence de valeurs Double.

Sum(IQueryable<Int32>)

Calcule la somme d'une séquence de valeurs Int32.

Sum(IQueryable<Int64>)

Calcule la somme d'une séquence de valeurs Int64.

Sum(IQueryable<Nullable<Decimal>>)

Calcule la somme d'une séquence de valeurs Decimal nullables.

Sum(IQueryable<Nullable<Double>>)

Calcule la somme d'une séquence de valeurs Double nullables.

Sum(IQueryable<Nullable<Int32>>)

Calcule la somme d'une séquence de valeurs Int32 nullables.

Sum(IQueryable<Nullable<Int64>>)

Calcule la somme d'une séquence de valeurs Int64 nullables.

Sum(IQueryable<Nullable<Single>>)

Calcule la somme d'une séquence de valeurs Single nullables.

Sum(IQueryable<Single>)

Calcule la somme d'une séquence de valeurs Single.

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Single>>)

Calcule la somme de la séquence de valeurs Single obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Single>>>)

Calcule la somme de la séquence des valeurs Single nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Int64>>>)

Calcule la somme de la séquence des valeurs Int64 nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Double>>>)

Calcule la somme de la séquence des valeurs Double nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Int32>>>)

Calcule la somme de la séquence des valeurs Int32 nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

Sum<TSource>(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.

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Decimal>>>)

Calcule la somme de la séquence des valeurs Decimal nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32>>)

Calcule la somme de la séquence de valeurs Int32 obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Double>>)

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

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Decimal>>)

Calcule la somme de la séquence de valeurs Decimal obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

Sum(IQueryable<Decimal>)

Calcule la somme d'une séquence de valeurs Decimal.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Decimal Sum(System::Linq::IQueryable<System::Decimal> ^ source);
public static decimal Sum (this System.Linq.IQueryable<decimal> source);
static member Sum : System.Linq.IQueryable<decimal> -> decimal
<Extension()>
Public Function Sum (source As IQueryable(Of Decimal)) As Decimal

Paramètres

source
IQueryable<Decimal>

Séquence de valeurs Decimal dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

La somme est supérieure à Decimal.MaxValue.

Remarques

La Sum(IQueryable<Decimal>) méthode génère un MethodCallExpression qui représente l’appel Sum(IQueryable<Decimal>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Decimal>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Double>)

Calcule la somme d'une séquence de valeurs Double.

public:
[System::Runtime::CompilerServices::Extension]
 static double Sum(System::Linq::IQueryable<double> ^ source);
public static double Sum (this System.Linq.IQueryable<double> source);
static member Sum : System.Linq.IQueryable<double> -> double
<Extension()>
Public Function Sum (source As IQueryable(Of Double)) As Double

Paramètres

source
IQueryable<Double>

Séquence de valeurs Double dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

Remarques

La Sum(IQueryable<Double>) méthode génère un MethodCallExpression qui représente l’appel Sum(IQueryable<Double>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Double>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Int32>)

Calcule la somme d'une séquence de valeurs Int32.

public:
[System::Runtime::CompilerServices::Extension]
 static int Sum(System::Linq::IQueryable<int> ^ source);
public static int Sum (this System.Linq.IQueryable<int> source);
static member Sum : System.Linq.IQueryable<int> -> int
<Extension()>
Public Function Sum (source As IQueryable(Of Integer)) As Integer

Paramètres

source
IQueryable<Int32>

Séquence de valeurs Int32 dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

La somme est supérieure à Int32.MaxValue.

Remarques

La Sum(IQueryable<Int32>) méthode génère un MethodCallExpression qui représente l’appel Sum(IQueryable<Int32>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Int32>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Int64>)

Calcule la somme d'une séquence de valeurs Int64.

public:
[System::Runtime::CompilerServices::Extension]
 static long Sum(System::Linq::IQueryable<long> ^ source);
public static long Sum (this System.Linq.IQueryable<long> source);
static member Sum : System.Linq.IQueryable<int64> -> int64
<Extension()>
Public Function Sum (source As IQueryable(Of Long)) As Long

Paramètres

source
IQueryable<Int64>

Séquence de valeurs Int64 dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

La somme est supérieure à Int64.MaxValue.

Remarques

La Sum(IQueryable<Int64>) méthode génère un MethodCallExpression qui représente l’appel Sum(IQueryable<Int64>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Int64>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Nullable<Decimal>>)

Calcule la somme d'une séquence de valeurs Decimal nullables.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<System::Decimal> Sum(System::Linq::IQueryable<Nullable<System::Decimal>> ^ source);
public static decimal? Sum (this System.Linq.IQueryable<decimal?> source);
static member Sum : System.Linq.IQueryable<Nullable<decimal>> -> Nullable<decimal>
<Extension()>
Public Function Sum (source As IQueryable(Of Nullable(Of Decimal))) As Nullable(Of Decimal)

Paramètres

source
IQueryable<Nullable<Decimal>>

Séquence de valeurs Decimal nullables dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

La somme est supérieure à Decimal.MaxValue.

Remarques

La Sum(IQueryable<Nullable<Decimal>>) méthode génère un MethodCallExpression qui représente l’appel Sum(IQueryable<Nullable<Decimal>>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Nullable<Decimal>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Nullable<Double>>)

Calcule la somme d'une séquence de valeurs Double nullables.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<double> Sum(System::Linq::IQueryable<Nullable<double>> ^ source);
public static double? Sum (this System.Linq.IQueryable<double?> source);
static member Sum : System.Linq.IQueryable<Nullable<double>> -> Nullable<double>
<Extension()>
Public Function Sum (source As IQueryable(Of Nullable(Of Double))) As Nullable(Of Double)

Paramètres

source
IQueryable<Nullable<Double>>

Séquence de valeurs Double nullables dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

Remarques

La Sum(IQueryable<Nullable<Double>>) méthode génère un MethodCallExpression qui représente l’appel Sum(IQueryable<Nullable<Double>>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Nullable<Double>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Nullable<Int32>>)

Calcule la somme d'une séquence de valeurs Int32 nullables.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<int> Sum(System::Linq::IQueryable<Nullable<int>> ^ source);
public static int? Sum (this System.Linq.IQueryable<int?> source);
static member Sum : System.Linq.IQueryable<Nullable<int>> -> Nullable<int>
<Extension()>
Public Function Sum (source As IQueryable(Of Nullable(Of Integer))) As Nullable(Of Integer)

Paramètres

source
IQueryable<Nullable<Int32>>

Séquence de valeurs Int32 nullables dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

La somme est supérieure à Int32.MaxValue.

Remarques

La Sum(IQueryable<Nullable<Int32>>) méthode génère un MethodCallExpression qui représente l’appel Sum(IQueryable<Nullable<Int32>>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Nullable<Int32>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Nullable<Int64>>)

Calcule la somme d'une séquence de valeurs Int64 nullables.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<long> Sum(System::Linq::IQueryable<Nullable<long>> ^ source);
public static long? Sum (this System.Linq.IQueryable<long?> source);
static member Sum : System.Linq.IQueryable<Nullable<int64>> -> Nullable<int64>
<Extension()>
Public Function Sum (source As IQueryable(Of Nullable(Of Long))) As Nullable(Of Long)

Paramètres

source
IQueryable<Nullable<Int64>>

Séquence de valeurs Int64 nullables dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

La somme est supérieure à Int64.MaxValue.

Remarques

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Nullable<Int64>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Nullable<Single>>)

Calcule la somme d'une séquence de valeurs Single nullables.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<float> Sum(System::Linq::IQueryable<Nullable<float>> ^ source);
public static float? Sum (this System.Linq.IQueryable<float?> source);
static member Sum : System.Linq.IQueryable<Nullable<single>> -> Nullable<single>
<Extension()>
Public Function Sum (source As IQueryable(Of Nullable(Of Single))) As Nullable(Of Single)

Paramètres

source
IQueryable<Nullable<Single>>

Séquence de valeurs Single nullables dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser Sum(IQueryable<Nullable<Single>>) pour additionner les valeurs d’une séquence.

float?[] points = { null, 0, 92.83F, null, 100.0F, 37.46F, 81.1F };

float? sum = points.AsQueryable().Sum();

Console.WriteLine("Total points earned: {0}", sum);

/*
    This code produces the following output:

    Total points earned: 311.39
*/
Dim points As Nullable(Of Single)() = {Nothing, 0, 92.83F, Nothing, 100.0F, 37.46F, 81.1F}

Dim sum As Nullable(Of Single) = points.AsQueryable().Sum()

MsgBox("Total points earned: " & sum)

'This code produces the following output:

'Total points earned: 311.39

Remarques

La Sum(IQueryable<Nullable<Single>>) méthode génère un MethodCallExpression qui représente l’appel Sum(IQueryable<Nullable<Single>>) de lui-même en tant que méthode générique construite. Il passe ensuite le MethodCallExpression à la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Nullable<Single>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum(IQueryable<Single>)

Calcule la somme d'une séquence de valeurs Single.

public:
[System::Runtime::CompilerServices::Extension]
 static float Sum(System::Linq::IQueryable<float> ^ source);
public static float Sum (this System.Linq.IQueryable<float> source);
static member Sum : System.Linq.IQueryable<single> -> single
<Extension()>
Public Function Sum (source As IQueryable(Of Single)) As Single

Paramètres

source
IQueryable<Single>

Séquence de valeurs Single dont la somme doit être calculée.

Retours

Somme des valeurs de la séquence.

Exceptions

source a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser Sum(IQueryable<Single>) pour additionner les valeurs d’une séquence.

List<float> numbers = new List<float> { 43.68F, 1.25F, 583.7F, 6.5F };

float sum = numbers.AsQueryable().Sum();

Console.WriteLine("The sum of the numbers is {0}.", sum);

/*
    This code produces the following output:

    The sum of the numbers is 635.13.
*/
Dim numbers As New List(Of Single)(New Single() {43.68F, 1.25F, 583.7F, 6.5F})

Dim sum As Single = numbers.AsQueryable().Sum()

MsgBox("The sum of the numbers is " & sum)

' This code produces the following output:

' The sum of the numbers is 635.13.

Remarques

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum(IQueryable<Single>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il retourne la somme des valeurs dans source.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Single>>)

Calcule la somme de la séquence de valeurs Single obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static float Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, float> ^> ^ selector);
public static float Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,float>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, single>> -> single
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Single))) As Single

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Single>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Single>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Single>>>)

Calcule la somme de la séquence des valeurs Single nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<float> Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, Nullable<float>> ^> ^ selector);
public static float? Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,float?>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, Nullable<single>>> -> Nullable<single>
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Nullable(Of Single)))) As Nullable(Of Single)

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Nullable<Single>>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Single>>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Int64>>>)

Calcule la somme de la séquence des valeurs Int64 nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<long> Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, Nullable<long>> ^> ^ selector);
public static long? Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,long?>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, Nullable<int64>>> -> Nullable<int64>
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Nullable(Of Long)))) As Nullable(Of Long)

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Nullable<Int64>>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

La somme est supérieure à Int64.MaxValue.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Int64>>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Double>>>)

Calcule la somme de la séquence des valeurs Double nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<double> Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, Nullable<double>> ^> ^ selector);
public static double? Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,double?>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, Nullable<double>>> -> Nullable<double>
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Nullable(Of Double)))) As Nullable(Of Double)

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Nullable<Double>>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

La 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>>>) de lui-même en tant que méthode générique construite. Il passe ensuite le MethodCallExpression à la Execute<TResult>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre .

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Double>>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Int32>>>)

Calcule la somme de la séquence des valeurs Int32 nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<int> Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, Nullable<int>> ^> ^ selector);
public static int? Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int?>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, Nullable<int>>> -> Nullable<int>
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Nullable(Of Integer)))) As Nullable(Of Integer)

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Nullable<Int32>>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

La somme est supérieure à Int32.MaxValue.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Int32>>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(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.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static long Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, long> ^> ^ selector);
public static long Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,long>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int64>> -> int64
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Long))) As Long

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Int64>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

La somme est supérieure à Int64.MaxValue.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int64>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Decimal>>>)

Calcule la somme de la séquence des valeurs Decimal nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<System::Decimal> Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, Nullable<System::Decimal>> ^> ^ selector);
public static decimal? Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,decimal?>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, Nullable<decimal>>> -> Nullable<decimal>
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Nullable(Of Decimal)))) As Nullable(Of Decimal)

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Nullable<Decimal>>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

La somme est supérieure à Decimal.MaxValue.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Nullable<Decimal>>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32>>)

Calcule la somme de la séquence de valeurs Int32 obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static int Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int> ^> ^ selector);
public static int Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int>> -> int
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Integer))) As Integer

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Int32>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

La somme est supérieure à Int32.MaxValue.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Double>>)

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

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static double Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, double> ^> ^ selector);
public static double Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,double>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, double>> -> double
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Double))) As Double

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Double>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Double>>) dépend de l’implémentation du type du 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.

S’applique à

Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Decimal>>)

Calcule la somme de la séquence de valeurs Decimal obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Decimal Sum(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, System::Decimal> ^> ^ selector);
public static decimal Sum<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,decimal>> selector);
static member Sum : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, decimal>> -> decimal
<Extension()>
Public Function Sum(Of TSource) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Decimal))) As Decimal

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs de type TSource.

selector
Expression<Func<TSource,Decimal>>

Fonction de projection à appliquer à chaque élément.

Retours

Somme des valeurs projetées.

Exceptions

source ou selector est null.

La somme est supérieure à Decimal.MaxValue.

Exemples

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

Notes

Cet exemple de code utilise une surcharge de la méthode qui est différente de la surcharge spécifique décrite dans cet article. Pour étendre l’exemple à la surcharge décrite dans cet article, modifiez le corps de la selector fonction.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Shared Sub SumEx3()
    Dim packages As New List(Of Package)(New Package() { _
            New Package With {.Company = "Coho Vineyard", .Weight = 25.2}, _
              New Package With {.Company = "Lucerne Publishing", .Weight = 18.7}, _
              New Package With {.Company = "Wingtip Toys", .Weight = 6.0}, _
              New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Calculate the sum of all package weights.
    Dim totalWeight As Double = packages.AsQueryable().Sum(Function(pkg) pkg.Weight)

    MsgBox("The total weight of the packages is: " & totalWeight)
End Sub

'This code produces the following output:

'The total weight of the packages is: 83.7

Remarques

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

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

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel Sum<TSource>(IQueryable<TSource>, Expression<Func<TSource,Decimal>>) dépend de l’implémentation du type du 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.

S’applique à