Avant de commencer cette série de billets sur Linq, j’avais décidé d’aborder les opérateurs dans un ordre aléatoire. Plus, je regarde cet ordre aléatoire et plus je me dis qu’il va falloir remettre un ordre la dedans car il y a pas mal d’opérateurs qu’il n’est pas possible d’aborder sans en avoir vu d’autres au préalable. Enfin soit, aujourd’hui, on reste dans le facile avec l’opérateur Sum.

On reprend notre classe MembreDeveloppez que voici :

public class MembreDeveloppez
{
        // …
        public string Nom { get; set; }
        public int NombreMessages { get; set; }
}

Si vous aviez une liste d’instances de cette classe, comment feriez-vous pour obtenir le nombre de message écrits par l’ensemble des membres de Developpez.com ?

Cette solution par exemple :

foreach (var currentMembre in membres)
{
        totalMessage += currentMembre.NombreMessages;
}
Console.WriteLine(« Nombre de messages : {0} », totalMessage);

Encore une fois, il existe à présent un opérateur qui le fait déjà pour nous : Sum.

A présent, stop aux boucles qui font perdre du temps à nous tous, fainéants développeurs que nous sommes.

int totalMessage = membres.Sum(membre => membre.NombreMessages);
Console.WriteLine(« Nombre de messages : {0} », totalMessage);

Vous pourrez d’ailleurs utiliser cet opérateur pour calculer une somme avec les types suivants : int, int?, float, float?, decimal, decimal?, double, double?, long et long?.