Ca y est, il commence à y avoir un ordre cohérent dans la série des billets sur les opérateurs Linq qui vont suivre. Encore quelques ajustements et ce sera bon. En attendant, on va rester dans la lignée de l’opérateur Sum que nous avons vu dans le numéro 5 et attaquer l’opérateur Average.

On reprend notre liste d’instances de la classe MembreDeveloppez et dîtes-moi comment vous feriez-vous pour obtenir la moyenne globale des messages écrits par les membres de developpez.com ?

Facile ?! Je me doute :)

int totalMessages = 0;
foreach (var currentMembre in membres)
{
        totalMessages += currentMembre.NombreMessages;
}

Console.WriteLine(« Nombre de messages moyen : {0} », (double)totalMessages / membres.Count);

Avec Linq, vous avez un opérateur qui fait tout ça pour vous : Average.

Ce qui nous donne :

double moyenneMessage = membres.Average(membre => membre.NombreMessages);

Console.WriteLine(« Nombre de messages moyen : {0} », moyenneMessage);
Console.Read();

Et tout comme avec l’opérateur Sum, vous pourrez utiliser cet opérateur pour calculer une moyenne avec les types suivants : int, int?, float, float?, decimal, decimal?, double, double?, long et long?.

Bon Linq !

Téléchargez les sources (sous Visual Studio 2008).