예제 #1
0
        static void Main(string[] args)
        {
            InitialiserDatas();

            Console.WriteLine("Afficher la liste des prénoms des auteurs dont le nom commence par 'G'");
            var listeAuteursG = ListeAuteurs.Where(a => a.Nom.Substring(0, 1).ToLower().Equals("g"));

            foreach (var auteur in listeAuteursG)
            {
                Console.WriteLine($"{auteur.Prenom}");
            }


            Console.WriteLine("\nAfficher l'auteur ayant écrit le plus de livres");
            var auteurPlusPresent = ListeAuteurs.OrderBy(a => ListeLivres.OrderBy(l => l.Auteur == a).Count()).First();

            Console.WriteLine($"{auteurPlusPresent.Nom} {auteurPlusPresent.Prenom}");


            Console.WriteLine("\nAfficher le nombre moyen de pages par livre par auteur");
            var listeAuteurs = ListeAuteurs.OrderBy(a => a.Nom);

            foreach (var auteur in listeAuteurs)
            {
                var livresParAuteur = ListeLivres.Where(l => l.Auteur.Equals(auteur));
                if (livresParAuteur.Count() != 0)
                {
                    double moyennePages = livresParAuteur.Average(l => l.NbPages);
                    Console.WriteLine($"{auteur.Nom} {auteur.Prenom} {moyennePages}");
                }
            }


            Console.WriteLine("\nAfficher le titre du livre avec le plus de pages");
            var livrePlusLong = ListeLivres.OrderByDescending(l => l.NbPages).First();

            Console.WriteLine($"{livrePlusLong.Titre} {livrePlusLong.Synopsis}");


            Console.WriteLine("\nAfficher combien ont gagné les auteurs en moyenne (moyenne des factures)");
            var listedesFactures = ListeAuteurs.Average(a => a.Factures.Sum(f => f.Montant));

            Console.WriteLine(listedesFactures.ToString());


            Console.WriteLine("\nAfficher les auteurs et la liste de leurs livres");
            foreach (var auteur in listeAuteurs)
            {
                Console.WriteLine($"{auteur.Nom} {auteur.Prenom} : ");

                var listeLivres = ListeLivres.Where(l => l.Auteur.Nom == auteur.Nom);
                foreach (var livre in listeLivres)
                {
                    Console.WriteLine($" - {livre.Titre} {livre.Synopsis}");
                }
            }


            Console.WriteLine("\nAfficher les titres de tous les livres triés par ordre alphabétique");
            var listeLivresAlpha = ListeLivres.OrderBy(l => l.Titre);

            foreach (var livre in listeLivresAlpha)
            {
                Console.WriteLine($"{livre.Titre} {livre.Synopsis}");
            }


            Console.WriteLine("\nAfficher la liste des livres dont le nombre de pages est supérieur à la moyenne");
            var tailleMoyennedesLivres = ListeLivres.Average(l => l.NbPages);

            foreach (var auteur in listeAuteurs)
            {
                var moyennePage = ListeLivres.Where(l => l.Auteur.Nom == auteur.Nom);
                foreach (var livre in moyennePage)
                {
                    if (livre.NbPages > tailleMoyennedesLivres)
                    {
                        Console.WriteLine($"{livre.Titre} {livre.Synopsis}");
                    }
                }
            }


            Console.WriteLine("\nAfficher l'auteur ayant écrit le moins de livres");
            var auteurMoinsPresent = ListeAuteurs.OrderBy(a => ListeLivres.OrderBy(l => l.Auteur == a).Count()).Last();

            Console.WriteLine($"{ auteurMoinsPresent.Nom } {auteurMoinsPresent.Prenom}");


            Console.ReadKey();
        }
예제 #2
0
        static void Main(string[] args)
        {
            InitialiserDatas();

            /*var auteurs = ListeAuteurs;
             * var livres = ListeLivres;*/
            Console.WriteLine("Liste de tous les auteurs : ");
            foreach (var auteur in ListeAuteurs)
            {
                Console.WriteLine(auteur.Nom);
            }

            var auteursNomG = ListeAuteurs.Where(a => a.Nom.StartsWith("G")).Select(a => a.Prenom);

            foreach (var auteur in auteursNomG)
            {
                Console.WriteLine($"Liste de tous les auteurs dont le nom commence par G : {auteur} \n");
            }

            // Afficher l auteur ayant écrit le plus de livres
            Console.WriteLine("L'auteur ayant écrit le plus de livres : ");
            var autMaxLivre = ListeLivres.Select(a => a.Auteur).First();

            Console.WriteLine(autMaxLivre.Nom);


            var auteurMaxLivres = ListeLivres.GroupBy(l => l.Auteur).OrderByDescending(n => n.Count()).First().Key;

            Console.WriteLine("L'auteur ayant écrit le plus de livres : " + auteurMaxLivres.Nom);

            //Afficher le nombre moyen de pages par livre par auteur
            var pageMoyenLivres = ListeLivres.GroupBy(l => l.Auteur);

            foreach (var element in pageMoyenLivres)
            {
                Console.WriteLine($"{element.Key.Prenom} {element.Key.Nom} écrit en moyenne {element.Average(e => e.NbPages)} pages");
            }

            //Afficher le titre du livre avec le plus de pages
            var livreMaxPAge = ListeLivres.OrderByDescending(p => p.NbPages).First();

            Console.WriteLine($"Le livre ayant le max de pages est : {livreMaxPAge.Titre}");


            //Afficher combien ont gagné les auteurs en moyenne (moyenne des factures)
            var gagnerAuteur = ListeAuteurs.Average(a => a.Factures.Sum(f => f.Montant));

            Console.WriteLine($"En moyenne les autteurs ont gangé {gagnerAuteur} €");


            //Afficher les auteurs et la liste de leurs livres
            var auteurs = ListeAuteurs;
            var livres  = ListeLivres;

/*            foreach (var auth in ListeAuteurs)
 *          {
 *              Console.WriteLine("Auteur : " + auth.Nom);
 *
 *              foreach (var livreParAuth in ListeLivres)
 *              {
 *                  Console.WriteLine(livreParAuth.Titre);
 *              }
 *          }*/

            //Afficher les titres de tous les livres triés par ordre alphabétique
            var listeLivreCroissant = ListeLivres.OrderBy(l => l.Titre).Select(t => t.Titre);

            Console.WriteLine("Liste des livres par ordre alphabétique");
            foreach (var livreAlph in listeLivreCroissant)
            {
                Console.WriteLine(livreAlph);
            }


            //Afficher la liste des livres dont le nombre de page s est supérieur à la moyenne
            var moyennePage      = ListeLivres.Average(p => p.NbPages);
            var livresSupMoyenne = ListeLivres.Where(p => p.NbPages > moyennePage);

            Console.WriteLine($"Liste des livres dont le nombre de page est sup a {moyennePage} :");
            foreach (var livreSup in livresSupMoyenne)
            {
                Console.WriteLine(livreSup.Titre);
            }


            //Afficher l'auteur ayant écrit le moins de livres
            Console.WriteLine("L'auteur ayant écrit le moins de livres : ");
            var authMoinsLivre = ListeLivres.Select(a => a.Auteur).Last();

            Console.WriteLine(authMoinsLivre.Nom);


            Console.ReadKey();
        }
예제 #3
0
        static void Main(string[] args)
        {
            InitialiserDatas();

            // Liste prénoms auteurs commencant par G
            var auteurCommencantParG = ListeAuteurs.Where(a => a.Nom.Substring(0, 1) == "G");

            Console.WriteLine("Liste prénoms auteurs commencant par G");
            foreach (var a in auteurCommencantParG)
            {
                Console.WriteLine(a.Prenom);
            }

            // Auteur ayant écrit le plus de livres
            var auteurs = ListeLivres.GroupBy(
                l => l.Auteur,
                (baseId, ids) => new
            {
                Key   = baseId,
                Count = ids.Count()
            });

            Console.WriteLine();
            Console.WriteLine("Auteur ayant écrit le plus de livres");

            foreach (var a in auteurs)
            {
                Console.WriteLine(a.Key.Nom);
                Console.WriteLine(a.Count);
            }


            //Nombre moyen de pages par auteurs
            //var pagesParAuteur = ListeLivres.GroupBy(
            //    l => l.Auteur,
            //    (basePage, pages) => new
            //    {
            //        Key = basePage,
            //        Min = pages.Min()
            //    });

            //Console.WriteLine();
            //Console.WriteLine("Nombre de pages myen par auteur");

            //foreach (var a in pagesParAuteur)
            //{
            //    Console.WriteLine(a.Key.Nom);
            //    Console.WriteLine(a.Min);
            //}

            //Auteur et liste de leurs livres

            Console.WriteLine();
            Console.WriteLine("Auteur et liste de leurs livres");
            foreach (var a in ListeAuteurs)
            {
                var           livresAuteurs = ListeLivres.Where(l => l.Auteur == a);
                StringBuilder sb            = new StringBuilder();
                sb.Clear();
                sb = sb.Append(a.Nom).Append(" : ");
                foreach (var l in livresAuteurs)
                {
                    sb = sb.Append(l.Titre).Append("; ");
                }
                Console.WriteLine(sb);
            }



            // Titre de tous les livres triés
            var livres = ListeLivres.OrderBy(l => l.Titre);

            Console.WriteLine();
            Console.WriteLine("Titres triés par ordre alpha");

            foreach (var l in livres)
            {
                Console.WriteLine(l.Titre);
            }

            // Livres dont le nb de pages est > à la moyenne
            var listNbPages = ListeLivres.Select(l => l.NbPages);

            double nbPagesMoyen = listNbPages.Average();

            var livresSupMoyenne = ListeLivres.Where(l => l.NbPages > nbPagesMoyen);

            Console.WriteLine();
            Console.WriteLine("Livres dont le nb de pages est > à la moyenne");

            foreach (var l in livresSupMoyenne)
            {
                Console.WriteLine(l.Titre);
            }
            //Console.WriteLine(nbPagesMoyen);

            Console.ReadKey();
        }
예제 #4
0
        public static void Main(string[] args)
        {
            InitialiserDatas();

            var query1 = ListeAuteurs.Where(a => a.Nom.StartsWith("G")).Select(a => a.Prenom);

            Console.WriteLine("Liste des prénoms des auteurs dont le nom commence par G");
            foreach (var prenom in query1)
            {
                Console.WriteLine(prenom);
            }
            Console.WriteLine();
            var query2 = ListeLivres.GroupBy(l => l.Auteur).OrderByDescending(l => l.Count()).FirstOrDefault().Key;

            Console.WriteLine($"L'auteur qui a écrit le plus de livre est :{query2.Prenom} {query2.Nom}");

            Console.WriteLine();
            var query3 = ListeLivres.GroupBy(l => l.Auteur);

            foreach (var author in query3)
            {
                Console.WriteLine($"Le nombre moyen de page par livre de l'auteur {author.Key.Prenom} {author.Key.Nom} est de {author.Average(l=>l.NbPages)}");
            }

            Console.WriteLine();
            var query4 = ListeLivres.OrderByDescending(l => l.NbPages).FirstOrDefault();

            Console.WriteLine($"Le Livre qui contient le plus de page est {query4.Titre} ");
            Console.WriteLine();

            var query5 = ListeAuteurs.Average(s => s.Factures.Sum(f => f.Montant));

            Console.WriteLine($"Les auteurs ont gagné en moyenne {query5}");


            Console.WriteLine();

            Console.WriteLine();
            var query6 = ListeLivres.GroupBy(l => l.Auteur);

            Console.WriteLine("Liste des auteurs et de leurs livres");
            foreach (var livres in query6)
            {
                Console.WriteLine($"Auteur : {livres.Key.Prenom} {livres.Key.Nom}");
                foreach (var livre in livres)
                {
                    Console.WriteLine($"{livre.Titre}");
                }
            }
            Console.WriteLine();
            var query7 = ListeLivres.OrderBy(l => l.Titre);

            Console.WriteLine("Titres des livres triés par ordre alphabétique :");
            foreach (var livre in query7)
            {
                Console.WriteLine($"{livre.Titre}");
            }
            Console.WriteLine();
            var query9 = ListeLivres.GroupBy(l => l.Auteur).OrderByDescending(l => l.Count()).LastOrDefault().Key;

            Console.WriteLine($"L'auteur qui a écrit le moins de livre est :{query9.Prenom} {query9.Nom}");

            Console.ReadKey();
        }
예제 #5
0
        static void Main(string[] args)
        {
            InitialiserDatas();

            //Affichage de la liste des prénoms des auteurs donc le nom commence par "G"
            var           prenomsAuteursParG = ListeAuteurs.Where(a => a.Nom.ToUpper().StartsWith("G")).Select(a => a.Prenom);
            StringBuilder affichageAuteur    = new StringBuilder();

            affichageAuteur.Append("Affichage des prénoms des auteurs dont le nom commence par G :");
            affichageAuteur.Append("\n");
            foreach (var prenom in prenomsAuteursParG)
            {
                affichageAuteur.Append("- ");
                affichageAuteur.Append(prenom);
                affichageAuteur.Append("\n");
            }
            Console.WriteLine(affichageAuteur.ToString());

            //Afficher l'auteur ayant écrit le plus de livres
            var           auteurAvecLePlusDeLivresEcrits          = ListeLivres.GroupBy(l => l.Auteur).OrderByDescending(t => t.Count()).FirstOrDefault().Key;
            StringBuilder affichageAuteurAvecLePlusDeLivresEcrits = new StringBuilder();

            affichageAuteurAvecLePlusDeLivresEcrits.Append("Affichage de l'auteur ayant écrit le plus de livres :");
            affichageAuteurAvecLePlusDeLivresEcrits.Append("\n");
            affichageAuteurAvecLePlusDeLivresEcrits.Append($"- {auteurAvecLePlusDeLivresEcrits.Nom} {auteurAvecLePlusDeLivresEcrits.Prenom}");
            affichageAuteurAvecLePlusDeLivresEcrits.Append("\n");
            Console.WriteLine(affichageAuteurAvecLePlusDeLivresEcrits.ToString());

            //Afficher le nombre moyen de pages par livre par auteur
            var           nbPagesMoyenParLivreParAuteur           = ListeLivres.GroupBy(l => l.Auteur);
            StringBuilder affichageNbPagesMoyensParLivreParAuteur = new StringBuilder();

            affichageNbPagesMoyensParLivreParAuteur.Append("Affichage du nombre moyen de pages par livre par auteur :");
            affichageNbPagesMoyensParLivreParAuteur.Append("\n");
            foreach (var item in nbPagesMoyenParLivreParAuteur)
            {
                affichageNbPagesMoyensParLivreParAuteur.Append($"- {item.Key.Prenom} {item.Key.Nom} nb moyen de pages={item.Average(l => l.NbPages)}");
                affichageNbPagesMoyensParLivreParAuteur.Append("\n");
            }
            Console.WriteLine(affichageNbPagesMoyensParLivreParAuteur.ToString());

            //Afficher le titre du livre avec le plus de pages
            var           titreLivreAvecLePlusDePages          = ListeLivres.OrderByDescending(l => l.NbPages).First();
            StringBuilder affichageTitreLivreAvecLePlusDePages = new StringBuilder();

            affichageTitreLivreAvecLePlusDePages.Append("Affichage du titre du livre ayant le plus de pages :");
            affichageTitreLivreAvecLePlusDePages.Append("\n");
            affichageTitreLivreAvecLePlusDePages.Append($"- {titreLivreAvecLePlusDePages.Titre}");
            affichageTitreLivreAvecLePlusDePages.Append("\n");
            Console.WriteLine(affichageTitreLivreAvecLePlusDePages.ToString());

            //Afficher combien ont gagné les auteurs en moyenne (moyenne des factures)
            var           moyenneGainAuteurs          = ListeAuteurs.Average(a => a.Factures.Sum(f => f.Montant));
            StringBuilder affichageMoyenneGainAuteurs = new StringBuilder();

            affichageMoyenneGainAuteurs.Append("Affichage de la moyenne des gains des auteurs :");
            affichageMoyenneGainAuteurs.Append("\n");
            affichageMoyenneGainAuteurs.Append("- " + moyenneGainAuteurs);
            affichageMoyenneGainAuteurs.Append("\n");
            Console.WriteLine(affichageMoyenneGainAuteurs.ToString());

            //Afficher les auteurs et la liste de leurs livres
            var           livresparAuteurs = ListeLivres.GroupBy(l => l.Auteur);
            StringBuilder affichageAuteursEtListeLivres = new StringBuilder();

            affichageAuteursEtListeLivres.Append("Affichage des auteurs et la liste de leurs livres :");
            affichageAuteursEtListeLivres.Append("\n");
            foreach (var livres in livresparAuteurs)
            {
                affichageAuteursEtListeLivres.Append($"- Auteur : {livres.Key.Prenom} {livres.Key.Nom} ");
                affichageAuteursEtListeLivres.Append("\n");

                foreach (var livre in livres)
                {
                    affichageAuteursEtListeLivres.Append($" - {livre.Titre}");
                    affichageAuteursEtListeLivres.Append("\n");
                }
                affichageAuteursEtListeLivres.Append("\n");
            }
            affichageAuteursEtListeLivres.Append("\n");
            Console.WriteLine(affichageAuteursEtListeLivres.ToString());

            //Afficher les titres de tous les livres triés par ordre alphabétique
            var           livresTriesAlphabetique            = ListeLivres.OrderBy(t => t.Titre).ToList();
            StringBuilder affichageLivreParOrdreAlphabétique = new StringBuilder();

            affichageLivreParOrdreAlphabétique.Append("Affichage des titres de tous les livres triés par ordre alphabétique :");
            affichageLivreParOrdreAlphabétique.Append("\n");
            foreach (var livreTrie in livresTriesAlphabetique)
            {
                affichageLivreParOrdreAlphabétique.Append($"- {livreTrie.Titre}");
                affichageLivreParOrdreAlphabétique.Append("\n");
            }
            affichageLivreParOrdreAlphabétique.Append("\n");
            Console.WriteLine(affichageLivreParOrdreAlphabétique.ToString());

            //Afficher la liste des livres dont le nombre de pages est supérieur à la moyenne
            StringBuilder affichageListeLivre = new StringBuilder();

            affichageListeLivre.Append("Affichage de la liste des livres dont le nombre de page est supérieur à la moyenne :");
            affichageListeLivre.Append("\n");
            var moyennePages = ListeLivres.Average(l => l.NbPages);
            var livresPagesSuperieuresMoyenne = ListeLivres.Where(l => l.NbPages > moyennePages);

            foreach (var livre in livresPagesSuperieuresMoyenne)
            {
                affichageListeLivre.Append($"- {livre.Titre}");
                affichageListeLivre.Append("\n");
            }
            affichageListeLivre.Append("\n");
            Console.WriteLine(affichageListeLivre.ToString());

            //Afficher l'auteur ayant écrit le moins de livres
            var           auteurMoinsDeLivres = ListeAuteurs.OrderBy(a => ListeLivres.Count(l => l.Auteur == a)).FirstOrDefault();
            StringBuilder affichageAuteurAvecLeMoinsDeLivresEcrits = new StringBuilder();

            affichageAuteurAvecLeMoinsDeLivresEcrits.Append("Affichage de l'auteur ayant écrit le moins de livres :");
            affichageAuteurAvecLeMoinsDeLivresEcrits.Append("\n");
            affichageAuteurAvecLeMoinsDeLivresEcrits.Append($"{auteurMoinsDeLivres.Prenom} {auteurMoinsDeLivres.Nom}");
            Console.WriteLine(affichageAuteurAvecLeMoinsDeLivresEcrits.ToString());

            Console.ReadKey();
        }
예제 #6
0
        static void Main(string[] args)
        {
            //Initialisation des données
            InitialiserDatas();

            //Afficher la liste des prénoms des auteurs dont le nom commence par "G"
            var prenomsStartByG = ListeAuteurs
                                  .Where(aut => aut.Nom.ToUpper().StartsWith("G")
                                         )
                                  .Select(aut => aut.Prenom);

            Console.WriteLine("Q1 - Afficher la liste des prenoms des auteurs dont le nom commence par \"G\"");

            foreach (var prenom in prenomsStartByG)
            {
                Console.WriteLine(" " + prenom);
            }
            Console.WriteLine();

            //Afficher l’auteur ayant écrit le plus de livres
            var auteur = ListeLivres
                         //Grouper les livres par auteur
                         .GroupBy(livre => livre.Auteur)
                         //Compter les nombre de livre et trier par ordre décroissant
                         .OrderByDescending(livre => livre.Count())
                         //Prendre le premier de la liste (ne fonctionne pas en cas d'égalité)
                         .FirstOrDefault().Key;

            Console.WriteLine("Q2 - Auteur ayant écrit le plus de livres");

            Console.WriteLine(" " + $"{auteur.Prenom} {auteur.Nom}");
            Console.WriteLine();

            // Afficher le nombre moyen de page par livre  par auteur
            var listeLivresParAuteur = ListeLivres.GroupBy(livre => livre.Auteur);

            Console.WriteLine("Q3 - Nombre moyen de page par livre par auteur:");
            foreach (var livre in listeLivresParAuteur)
            {
                Console.WriteLine(" " + $"Auteur: {livre.Key.Prenom} {livre.Key.Nom} Nombre de page moyen: {livre.Average(li => li.NbPages)}");
            }
            Console.WriteLine();

            // Afficher le titre du livre avec le plus de pages
            var livrePlusPage = ListeLivres
                                .OrderByDescending(livre => livre.NbPages)
                                .FirstOrDefault();

            Console.WriteLine($"Q4 - Livre avec le plus de page {livrePlusPage.Titre} avec {livrePlusPage.NbPages} pages");
            Console.WriteLine();

            // Afficher combien ont gagné les auteurs en moyenne
            var gainMoyen = ListeAuteurs.Average(aut => aut.Factures.Sum(facture => facture.Montant));

            Console.WriteLine($"Q5 - Gain moyen : {gainMoyen}");
            Console.WriteLine();

            // Afficher les auteurs et la liste de leurs livres
            Console.WriteLine("Q6 - Liste des livres par auteurs:");
            foreach (var livre in listeLivresParAuteur)
            {
                Console.WriteLine();
                Console.WriteLine($"Auteur : {livre.Key.Prenom} {livre.Key.Nom}");
                foreach (var l in livre)
                {
                    Console.WriteLine(" " + l.Titre);
                }
            }
            Console.WriteLine();

            // Afficher les titres de tous les livres triés par ordre alphabétique
            var ListeLivresAscTitre = ListeLivres.OrderBy(l => l.Titre);

            Console.WriteLine("Q7 - Liste des livres par odre alphabétique");
            foreach (var livre in ListeLivresAscTitre)
            {
                Console.WriteLine(" " + livre.Titre);
            }
            Console.WriteLine();


            // Afficher la liste des livres dont le nombre de pages est supérieur à la moyenne
            var moyennePage      = ListeLivres.Average(l => l.NbPages);
            var livresSupMoyenne = ListeLivres.Where(l => l.NbPages > moyennePage);

            Console.WriteLine("Q8 - Affiche les livres dont le nombre de pages est supérieur à la moyenne.");
            foreach (var livre in livresSupMoyenne)
            {
                Console.WriteLine(" " + $"{livre.Titre} {livre.NbPages}");
            }

            Console.WriteLine();

            // Afficher l'auteur ayant écrit le moins de livres
            var auteurMoinsDeLivres = ListeLivres
                                      .GroupBy(l => l.Auteur)
                                      .OrderBy(n => n.Count())
                                      .FirstOrDefault().Key;

            Console.WriteLine($"Q9 - Auteur ayant écrit le moins de livre: {auteurMoinsDeLivres.Prenom} {auteurMoinsDeLivres.Nom}");
            Console.WriteLine();

            Console.ReadKey();
        }
예제 #7
0
        static void Main(string[] args)
        {
            InitialiserDatas();

            Console.WriteLine("Liste des prénoms des auteurs dont le nom commence par G");
            var auteurs = ListeAuteurs.Where(a => a.Nom.StartsWith("G"));

            foreach (var auteur in auteurs)
            {
                Console.WriteLine($"{auteur.Prenom}");
            }

            Console.WriteLine("\nAuteur ayant écrit le plus de livres");
            var auteurProlifique = ListeLivres.GroupBy(livre => livre.Auteur).OrderByDescending(comptage => comptage.Count()).FirstOrDefault();

            Console.WriteLine($"{auteurProlifique.Key.Nom} {auteurProlifique.Key.Prenom}");

            Console.WriteLine("\nNombre moyen de pages par livre par auteur");
            var auteurPage = ListeLivres.GroupBy(livre => livre.Auteur);

            foreach (var auteur in auteurPage)
            {
                Console.WriteLine($"{auteur.Key.Prenom} {auteur.Key.Nom} : {auteur.Average(n=>n.NbPages)}");
            }

            Console.WriteLine("\nTitre du livre avec le plus de pages");
            var titre = ListeLivres.OrderByDescending(nbrePage => nbrePage.NbPages).FirstOrDefault();

            Console.WriteLine($"{titre.Titre}");

            Console.WriteLine("\nCombien ont gagné les auteurs en moyenne");
            var salaire = ListeAuteurs.Average(moyenne => moyenne.Factures.Sum(facture => facture.Montant));

            Console.WriteLine($"{salaire}");

            Console.WriteLine("\nles auteurs et la liste de leurs livres");
            var livres = ListeLivres.GroupBy(livre => livre.Auteur);

            foreach (var livre in livres)
            {
                Console.WriteLine($"{livre.Key.Nom} {livre.Key.Prenom} ");
                foreach (var livre2 in livre)
                {
                    Console.WriteLine($"{livre2.Titre}");
                }
            }

            Console.WriteLine("\nLes titres de tous les livres triés par ordre alphabétique");
            var listeLivresParTitre = ListeLivres.OrderBy(titre => titre.Titre);

            foreach (var livre in listeLivresParTitre)
            {
                Console.WriteLine($"{livre.Titre}");
            }

            Console.WriteLine("\nListe des livres dont le nombre de pages est supérieur à la moyenne");
            var moyenneNbrePages = ListeLivres.Average(nbrePages => nbrePages.NbPages);
            var listelivresNbrePagesSupMoyenne = ListeLivres.Where(livre => livre.NbPages > moyenneNbrePages);

            foreach (var livre in listelivresNbrePagesSupMoyenne)
            {
                Console.WriteLine($"{livre.Titre}");
            }

            Console.WriteLine("\nAuteur ayant écrit le moins de livres");
            var auteurMoinsProlifique = ListeLivres.GroupBy(livre => livre.Auteur).OrderBy(comptage => comptage.Count()).FirstOrDefault();

            Console.WriteLine($"{auteurMoinsProlifique.Key.Nom} {auteurMoinsProlifique.Key.Prenom}");

            Console.ReadKey();
        }