Enumerable.Aggregate Enumerable.Aggregate Enumerable.Aggregate Enumerable.Aggregate Method

Définition

Surcharges

Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)

Applique une fonction d'accumulation sur une séquence.Applies an accumulator function over a sequence. La valeur initiale spécifiée est utilisée comme valeur d'accumulation initiale et la fonction spécifiée permet de sélectionner la valeur de résultat.The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value.

Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)

Applique une fonction d'accumulation sur une séquence.Applies an accumulator function over a sequence. La valeur initiale spécifiée est utilisée comme valeur d'accumulation initiale.The specified seed value is used as the initial accumulator value.

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)

Applique une fonction d'accumulation sur une séquence.Applies an accumulator function over a sequence.

Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)

Applique une fonction d'accumulation sur une séquence.Applies an accumulator function over a sequence. La valeur initiale spécifiée est utilisée comme valeur d'accumulation initiale et la fonction spécifiée permet de sélectionner la valeur de résultat.The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value.

public:
generic <typename TSource, typename TAccumulate, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static TResult Aggregate(System::Collections::Generic::IEnumerable<TSource> ^ source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> ^ func, Func<TAccumulate, TResult> ^ resultSelector);
public static TResult Aggregate<TSource,TAccumulate,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate,TSource,TAccumulate> func, Func<TAccumulate,TResult> resultSelector);
static member Aggregate : seq<'Source> * 'Accumulate * Func<'Accumulate, 'Source, 'Accumulate> * Func<'Accumulate, 'Result> -> 'Result
<Extension()>
Public Function Aggregate(Of TSource, TAccumulate, TResult) (source As IEnumerable(Of TSource), seed As TAccumulate, func As Func(Of TAccumulate, TSource, TAccumulate), resultSelector As Func(Of TAccumulate, TResult)) As TResult

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

TAccumulate

Type de la valeur d'accumulation.The type of the accumulator value.

TResult

Type de la valeur résultante.The type of the resulting value.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> pour l'agrégat.An IEnumerable<T> to aggregate over.

seed
TAccumulate TAccumulate TAccumulate TAccumulate

Valeur d'accumulation initiale.The initial accumulator value.

func
Func<TAccumulate,TSource,TAccumulate>

Fonction d'accumulation à appeler sur chaque élément.An accumulator function to be invoked on each element.

resultSelector
Func<TAccumulate,TResult>

Fonction permettant de transformer la valeur d'accumulation finale en valeur de résultat.A function to transform the final accumulator value into the result value.

Retours

TResult TResult TResult TResult

Valeur d'accumulation finale transformée.The transformed final accumulator value.

Exceptions

source ou func ou resultSelector a la valeur null.source or func or resultSelector is null.

Exemples

L’exemple de code suivant montre comment utiliser Aggregate pour appliquer une fonction d’accumulation et un sélecteur de résultat.The following code example demonstrates how to use Aggregate to apply an accumulator function and a result selector.

string[] fruits = { "apple", "mango", "orange", "passionfruit", "grape" };

// Determine whether any string in the array is longer than "banana".
string longestName =
    fruits.Aggregate("banana",
                    (longest, next) =>
                        next.Length > longest.Length ? next : longest,
    // Return the final result as an upper case string.
                    fruit => fruit.ToUpper());

Console.WriteLine(
    "The fruit with the longest name is {0}.",
    longestName);

// This code produces the following output:
//
// The fruit with the longest name is PASSIONFRUIT.
Sub AggregateEx3()
    Dim fruits() As String =
    {"apple", "mango", "orange", "passionfruit", "grape"}

    ' Determine whether any string in the array is longer than "banana".
    Dim longestName As String =
    fruits.Aggregate("banana",
                     Function(ByVal longest, ByVal fruit) _
                         IIf(fruit.Length > longest.Length, fruit, longest),
                     Function(ByVal fruit) fruit.ToUpper())

    ' Display the output.
    MsgBox("The fruit with the longest name is " & longestName)
End Sub

' This code produces the following output:
'
' The fruit with the longest name is PASSIONFRUIT

Remarques

La Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) méthode permet d’effectuer un calcul simple sur une séquence de valeurs.The Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) method makes it simple to perform a calculation over a sequence of values. Cette méthode fonctionne en appelant func une fois pour chaque élément dans source.This method works by calling func one time for each element in source. Chaque fois func que est appelé Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) , passe à la fois l’élément de la séquence et une valeur agrégée (comme premier funcargument à).Each time func is called, Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) passes both the element from the sequence and an aggregated value (as the first argument to func). La valeur du seed paramètre est utilisée comme valeur d’agrégation initiale.The value of the seed parameter is used as the initial aggregate value. Le résultat de func remplace la valeur agrégée précédente.The result of func replaces the previous aggregated value. Le résultat final de func est passé à resultSelector pour obtenir le résultat final de Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>).The final result of func is passed to resultSelector to obtain the final result of Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>).

Pour simplifier les opérations d’agrégation courantes, les opérateurs de requête standard incluent également une méthode de Countcomptage à usage général, et quatre méthodes d' Maxagrégation numérique, Averageà savoir Min Sum,, et.To simplify common aggregation operations, the standard query operators also include a general purpose count method, Count, and four numeric aggregation methods, namely Min, Max, Sum, and Average.

Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)

Applique une fonction d'accumulation sur une séquence.Applies an accumulator function over a sequence. La valeur initiale spécifiée est utilisée comme valeur d'accumulation initiale.The specified seed value is used as the initial accumulator value.

public:
generic <typename TSource, typename TAccumulate>
[System::Runtime::CompilerServices::Extension]
 static TAccumulate Aggregate(System::Collections::Generic::IEnumerable<TSource> ^ source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> ^ func);
public static TAccumulate Aggregate<TSource,TAccumulate> (this System.Collections.Generic.IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate,TSource,TAccumulate> func);
static member Aggregate : seq<'Source> * 'Accumulate * Func<'Accumulate, 'Source, 'Accumulate> -> 'Accumulate
<Extension()>
Public Function Aggregate(Of TSource, TAccumulate) (source As IEnumerable(Of TSource), seed As TAccumulate, func As Func(Of TAccumulate, TSource, TAccumulate)) As TAccumulate

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

TAccumulate

Type de la valeur d'accumulation.The type of the accumulator value.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> pour l'agrégat.An IEnumerable<T> to aggregate over.

seed
TAccumulate TAccumulate TAccumulate TAccumulate

Valeur d'accumulation initiale.The initial accumulator value.

func
Func<TAccumulate,TSource,TAccumulate>

Fonction d'accumulation à appeler sur chaque élément.An accumulator function to be invoked on each element.

Retours

TAccumulate TAccumulate TAccumulate TAccumulate

Valeur d'accumulation finale.The final accumulator value.

Exceptions

Exemples

L’exemple de code suivant montre comment utiliser Aggregate pour appliquer une fonction d’accumulation et utiliser une valeur de départ.The following code example demonstrates how to use Aggregate to apply an accumulator function and use a seed value.

int[] ints = { 4, 8, 8, 3, 9, 0, 7, 8, 2 };

// Count the even numbers in the array, using a seed value of 0.
int numEven = ints.Aggregate(0, (total, next) =>
                                    next % 2 == 0 ? total + 1 : total);

Console.WriteLine("The number of even integers is: {0}", numEven);

// This code produces the following output:
//
// The number of even integers is: 6
Sub AggregateEx2()
    ' Create an array of Integers.
    Dim ints() As Integer = {4, 8, 8, 3, 9, 0, 7, 8, 2}

    ' Count the even numbers in the array, using a seed value of 0.
    Dim numEven As Integer =
    ints.Aggregate(0,
                   Function(ByVal total, ByVal number) _
                       IIf(number Mod 2 = 0, total + 1, total))

    ' Display the output.
    MsgBox("The number of even integers is " & numEven)
End Sub

' This code produces the following output:
'
'The number of even integers is 6

Remarques

La Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) méthode permet d’effectuer un calcul simple sur une séquence de valeurs.The Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) method makes it simple to perform a calculation over a sequence of values. Cette méthode fonctionne en appelant func une fois pour chaque élément dans source.This method works by calling func one time for each element in source. Chaque fois func que est appelé Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) , passe à la fois l’élément de la séquence et une valeur agrégée (comme premier funcargument à).Each time func is called, Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) passes both the element from the sequence and an aggregated value (as the first argument to func). La valeur du seed paramètre est utilisée comme valeur d’agrégation initiale.The value of the seed parameter is used as the initial aggregate value. Le résultat de func remplace la valeur agrégée précédente.The result of func replaces the previous aggregated value. Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)retourne le résultat final de func.Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) returns the final result of func.

Pour simplifier les opérations d’agrégation courantes, les opérateurs de requête standard incluent également une méthode de Countcomptage à usage général, et quatre méthodes d' Maxagrégation numérique, Averageà savoir Min Sum,, et.To simplify common aggregation operations, the standard query operators also include a general purpose count method, Count, and four numeric aggregation methods, namely Min, Max, Sum, and Average.

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)

Applique une fonction d'accumulation sur une séquence.Applies an accumulator function over a sequence.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource Aggregate(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TSource, TSource> ^ func);
public static TSource Aggregate<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TSource,TSource> func);
static member Aggregate : seq<'Source> * Func<'Source, 'Source, 'Source> -> 'Source
<Extension()>
Public Function Aggregate(Of TSource) (source As IEnumerable(Of TSource), func As Func(Of TSource, TSource, TSource)) As TSource

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> pour l'agrégat.An IEnumerable<T> to aggregate over.

func
Func<TSource,TSource,TSource>

Fonction d'accumulation à appeler sur chaque élément.An accumulator function to be invoked on each element.

Retours

TSource TSource TSource TSource

Valeur d'accumulation finale.The final accumulator value.

Exceptions

source ou func a la valeur null.source or func is null.

source ne contient aucun élément.source contains no elements.

Exemples

L’exemple de code suivant montre comment inverser l’ordre des mots dans une chaîne Aggregateà l’aide de.The following code example demonstrates how to reverse the order of words in a string by using Aggregate.

string sentence = "the quick brown fox jumps over the lazy dog";

// Split the string into individual words.
string[] words = sentence.Split(' ');

// Prepend each word to the beginning of the 
// new sentence to reverse the word order.
string reversed = words.Aggregate((workingSentence, next) =>
                                      next + " " + workingSentence);

Console.WriteLine(reversed);

// This code produces the following output:
//
// dog lazy the over jumps fox brown quick the
Sub AggregateEx1()
    Dim sentence As String =
    "the quick brown fox jumps over the lazy dog"
    ' Split the string into individual words.
    Dim words() As String = sentence.Split(" "c)
    ' Prepend each word to the beginning of the new sentence to reverse the word order.
    Dim reversed As String =
    words.Aggregate(Function(ByVal current, ByVal word) word & " " & current)

    ' Display the output.
    MsgBox(reversed)
End Sub

' This code produces the following output:
'
' dog lazy the over jumps fox brown quick the

Remarques

La Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) méthode permet d’effectuer un calcul simple sur une séquence de valeurs.The Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) method makes it simple to perform a calculation over a sequence of values. Cette méthode fonctionne en appelant func une fois pour chaque élément dans source , sauf le premier.This method works by calling func one time for each element in source except the first one. Chaque fois func que est appelé Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) , passe à la fois l’élément de la séquence et une valeur agrégée (comme premier funcargument à).Each time func is called, Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) passes both the element from the sequence and an aggregated value (as the first argument to func). Le premier élément de source est utilisé comme valeur d’agrégation initiale.The first element of source is used as the initial aggregate value. Le résultat de func remplace la valeur agrégée précédente.The result of func replaces the previous aggregated value. Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)retourne le résultat final de func.Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) returns the final result of func.

Cette surcharge de la Aggregate méthode n’est pas adaptée à tous les cas, car elle utilise source le premier élément de comme valeur d’agrégation initiale.This overload of the Aggregate method isn't suitable for all cases because it uses the first element of source as the initial aggregate value. Vous devez choisir une autre surcharge si la valeur de retour doit inclure uniquement les source éléments de qui remplissent une certaine condition.You should choose another overload if the return value should include only the elements of source that meet a certain condition. Par exemple, cette surcharge n’est pas fiable si vous souhaitez calculer la somme des nombres pairs dans source.For example, this overload isn't reliable if you want to calculate the sum of the even numbers in source. Le résultat sera incorrect si le premier élément est impair au lieu de pair.The result will be incorrect if the first element is odd instead of even.

Pour simplifier les opérations d’agrégation courantes, les opérateurs de requête standard incluent également une méthode de Countcomptage à usage général, et quatre méthodes d' Maxagrégation numérique, Averageà savoir Min Sum,, et.To simplify common aggregation operations, the standard query operators also include a general purpose count method, Count, and four numeric aggregation methods, namely Min, Max, Sum, and Average.

S’applique à