Пример #1
0
        static void Main(string[] args)
        {
            InitialiserDatas();


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

            Console.WriteLine("La liste des prenoms des auteurs dont le nom commence par \"G\"");
            foreach (var prenom in prenomsG)
            {
                Console.WriteLine(prenom);
            }
            Console.WriteLine();


            var auteurPlusDeLivres = ListeLivres.GroupBy(l => l.Auteur).OrderByDescending(g => g.Count()).FirstOrDefault().Key;

            Console.WriteLine("Qui a écrit le plus de livres");
            Console.WriteLine($"{auteurPlusDeLivres.Prenom} {auteurPlusDeLivres.Nom}");
            Console.WriteLine();


            var livresparAuteur = ListeLivres.GroupBy(l => l.Auteur);

            Console.WriteLine("Nombre moyen de pages par livre par auteur");
            foreach (var item in livresparAuteur)
            {
                Console.WriteLine($"{item.Key.Prenom} {item.Key.Nom} moyennes des pages={item.Average(l => l.NbPages)}");
            }
            Console.WriteLine();


            var livreMaxPage = ListeLivres.OrderByDescending(l => l.NbPages).First();

            Console.WriteLine("Quel est le titre du livre avec le plus de pages");
            Console.WriteLine(livreMaxPage.Titre);
            Console.WriteLine();


            var moyenne = ListeAuteurs.Average(a => a.Factures.Sum(f => f.Montant));

            Console.WriteLine("Money en moyenne");
            Console.WriteLine(moyenne);
            Console.WriteLine();


            Console.WriteLine("Liste auteurs et Liste livres");

            var livresparAuteur2 = ListeLivres.GroupBy(l => l.Auteur);

            foreach (var livres in livresparAuteur2)
            {
                Console.WriteLine($"Auteur : {livres.Key.Prenom} {livres.Key.Nom} ");
                foreach (var livre in livres)
                {
                    Console.WriteLine($" - {livre.Titre}");
                }
            }
            Console.WriteLine();


            Console.WriteLine("Titres de tous les livres alphabétiquement");
            ListeLivres.Select(l => l.Titre).OrderBy(t => t).ToList().ForEach(Console.WriteLine);
            Console.WriteLine();


            Console.WriteLine("Liste des livres where nombre de page est > à la moyenne");
            var moyennePages      = ListeLivres.Average(l => l.NbPages);
            var livresPagesSupMoy = ListeLivres.Where(l => l.NbPages > moyennePages);

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


            Console.WriteLine("Qui a écrit le moins de livre ");

            var auteurMoinsDeLivres = ListeAuteurs.OrderBy(a => ListeLivres.Count(l => l.Auteur == a)).FirstOrDefault();

            Console.WriteLine($"{auteurMoinsDeLivres.Prenom} {auteurMoinsDeLivres.Nom}");
            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();

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

            Console.WriteLine("Voici la liste des prenoms des auteurs dont le nom commence par la lettre G \n");
            foreach (var prenom in prenomsStartG)
            {
                Console.WriteLine(prenom);
            }
            Console.WriteLine("-----------------------------------------------------------------------------");

            var authorMostBooks = ListeLivres.GroupBy(a => a.Auteur).OrderByDescending(b => b.Count()).FirstOrDefault().Key;

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

            var booksByAuthor = ListeLivres.GroupBy(a => a.Auteur);

            Console.WriteLine("Voici le nombre moyen de pages par livre par auteur \n");
            foreach (var item in booksByAuthor)
            {
                Console.WriteLine($"{item.Key.Nom.ToUpper()} {item.Key.Prenom} avec une moyenne de pages = {item.Average(b => b.NbPages)}");
            }
            Console.WriteLine("-----------------------------------------------------------------------------");

            var booksMostPages = ListeLivres.OrderByDescending(a => a.NbPages).First();

            Console.WriteLine("Le titre du livre avec le plus de pages : \n");
            Console.WriteLine($"{booksMostPages.Titre} avec {booksMostPages.NbPages} pages.");
            Console.WriteLine("-----------------------------------------------------------------------------");

            var averageAuthorGains = ListeAuteurs.Average(a => a.Factures.Sum(b => b.Montant));

            Console.WriteLine("Voici combien les auteurs ont gagnés en moyenne \n");
            Console.WriteLine(averageAuthorGains);
            Console.WriteLine("-----------------------------------------------------------------------------");

            var booksByAuthor2 = ListeLivres.GroupBy(a => a.Auteur);

            foreach (var books in booksByAuthor2)
            {
                Console.WriteLine();
                Console.WriteLine($"Voici les livres de {books.Key.Nom.ToUpper()} {books.Key.Prenom} : \n");
                foreach (var book in books)
                {
                    Console.WriteLine(book.Titre);
                }
            }
            Console.WriteLine("-----------------------------------------------------------------------------");

            var booksByOrder = ListeLivres.Select(a => a.Titre).OrderBy(b => b).ToList();

            Console.WriteLine("Voici les titres des livres par ordre alphabétique \n");
            foreach (var title in booksByOrder)
            {
                Console.WriteLine(title);
            }

            Console.WriteLine("-----------------------------------------------------------------------------");
            var averagePages           = ListeLivres.Average(a => a.NbPages);
            var booksAboveAveragePages = ListeLivres.Where(a => a.NbPages > averagePages);

            Console.WriteLine($"Les titres des livres supérieures à la moyenne en page : \n");
            foreach (var book in booksAboveAveragePages)
            {
                Console.WriteLine($"{book.Titre}");
            }

            Console.WriteLine("-----------------------------------------------------------------------------");

            var authorWithLessBook = ListeLivres.GroupBy(a => a.Auteur).OrderBy(b => b.Count()).FirstOrDefault().Key;

            Console.WriteLine($"L'auteur ayant écrit le moins de livres : \n");
            Console.WriteLine(authorWithLessBook.Nom);

            Console.ReadKey();
        }
Пример #4
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();
        }
Пример #5
0
        static void Main(string[] args)
        {
            InitialiserDatas();


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

            Console.WriteLine("Liste Auteurs qui commence par\"G\"");

            foreach (var prenom in prenomsG)
            {
                Console.WriteLine(prenom);
            }
            Console.WriteLine();


            var auteurPlusDeLivres = ListeLivres.GroupBy(l => l.Auteur).OrderByDescending(g => g.Count()).FirstOrDefault().Key;

            Console.WriteLine("Auteur qui a ecrit le plus de livre");

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

            Console.WriteLine();


            var livresparAuteur = ListeLivres.GroupBy(l => l.Auteur);

            Console.WriteLine("nombre page moyen par auteur");
            foreach (var item in livresparAuteur)
            {
                Console.WriteLine($"{item.Key.Prenom} {item.Key.Nom} moyennes des pages={item.Average(l => l.NbPages)}");
            }
            Console.WriteLine();

            var livreMaxPage = ListeLivres.OrderByDescending(l => l.NbPages).First();

            Console.WriteLine("livre avec plus de page");

            Console.WriteLine(livreMaxPage.Titre);

            Console.WriteLine();


            var moyenne = ListeAuteurs.Average(a => a.Factures.Sum(f => f.Montant));

            Console.WriteLine("Combien ont gagne en moyenne");

            Console.WriteLine(moyenne);

            Console.WriteLine();

            Console.WriteLine("liste auteurs et de leurs livres");

            var livresparAuteur2 = ListeLivres.GroupBy(l => l.Auteur);

            foreach (var livres in livresparAuteur2)
            {
                Console.WriteLine($"Auteur : {livres.Key.Prenom} {livres.Key.Nom} ");
                foreach (var livre in livres)
                {
                    Console.WriteLine($" - {livre.Titre}");
                }
            }
            Console.WriteLine();

            Console.WriteLine(" livres par ordre alphabethique");
            ListeLivres.Select(l => l.Titre).OrderBy(t => t).ToList().ForEach(Console.WriteLine);
            Console.WriteLine();

            Console.WriteLine("");
            var moyennePages      = ListeLivres.Average(l => l.NbPages);
            var livresPagesSupMoy = ListeLivres.Where(l => l.NbPages > moyennePages);

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

            //- Afficher l'auteur ayant écrit le moins de livres
            Console.WriteLine("- Auteur ayant ecrit le moins de livres");
            //   var auteurMoinsDeLivres = ListeLivres.GroupBy(l => l.Auteur).OrderBy(g => g.Count()).FirstOrDefault().Key;

            var auteurMoinsDeLivres = ListeAuteurs.OrderBy(a => ListeLivres.Count(l => l.Auteur == a)).FirstOrDefault();

            Console.WriteLine($"{auteurMoinsDeLivres.Prenom} {auteurMoinsDeLivres.Nom}");
            Console.ReadKey();
        }
Пример #6
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();
        }
Пример #7
0
        static void Main(string[] args)
        {
            InitialiserDatas();

            //DEBUT prenom commencant par G
            var listPrenomG = ListeAuteurs.Where(a => a.Nom.StartsWith("G")).Select(a => a.Prenom);

            Console.WriteLine("Prénoms commencant par G : ");
            foreach (var prenomG in listPrenomG)
            {
                Console.WriteLine(prenomG);
            }
            //FIN prenom commencant par G

            Console.WriteLine();

            //DEBUT auteur avec le plus de livre
            var auteurMaxLivre = ListeLivres.GroupBy(l => l.Auteur).OrderByDescending(l => l.Count()).FirstOrDefault().Key;

            Console.WriteLine($"L'auteur avec le plus de livre est : {auteurMaxLivre.Prenom} {auteurMaxLivre.Nom}");
            //FIN auteur avec le plus de livre

            Console.WriteLine();

            //DEBUT nombre moyen page par auteur
            var ListeLivresParAuteur = ListeLivres.GroupBy(l => l.Auteur);

            Console.WriteLine("Nombre moyens de page par auteur : ");
            foreach (var listeLivres in ListeLivresParAuteur)
            {
                var nbPage = listeLivres.Average(l => l.NbPages);
                Console.WriteLine($"{listeLivres.Key.Prenom} {listeLivres.Key.Nom} a une moyennes de page de {nbPage}");
            }
            //FIN nombre moyen page par auteur

            Console.WriteLine();

            //DEBUT Livre avec le plus de page
            var livreMaxPage = ListeLivres.OrderByDescending(l => l.NbPages).First();

            Console.WriteLine($"Le livre avec le plus de page est : {livreMaxPage.Titre}");
            //FIN Livre avec le plus de page

            Console.WriteLine();

            //DEBUT Moyenne des factures auteurs
            var moyenne = ListeAuteurs.Average(a => a.Factures.Sum(f => f.Montant));

            Console.WriteLine($"La moyenne est de : {moyenne}");
            //FIN Moyenne des factures auteurs

            Console.WriteLine();

            //DEBUT Auteurs et leurs livres
            Console.WriteLine("Les auteurs et leurs livres : ");
            foreach (var listeLivres in ListeLivresParAuteur)
            {
                Console.WriteLine($"{listeLivres.Key.Prenom} {listeLivres.Key.Nom} :");
                foreach (var livre in listeLivres)
                {
                    Console.WriteLine($"    -  {livre.Titre}");
                }
            }
            //FIN Auteurs et leurs livres

            Console.WriteLine();

            //DEBUT Livres par ordre alphabétique
            Console.WriteLine("Livres par ordre alphabétique : ");
            var listeLivreOrdre = ListeLivres.Select(l => l.Titre).OrderBy(t => t);

            foreach (var livre  in listeLivreOrdre)
            {
                Console.WriteLine($"    -  {livre}");
            }
            //FIN Livres par ordre alphabétique

            Console.WriteLine();

            //DEBUT Livre nombre page > moyenne
            Console.WriteLine("Livre nombre page > moyenne :");
            var moyennePages      = ListeLivres.Average(l => l.NbPages);
            var livresSuppMoyenne = ListeLivres.Where(l => l.NbPages > moyennePages);

            foreach (var livre in livresSuppMoyenne)
            {
                Console.WriteLine($"    -  {livre.Titre}");
            }
            //FIN Livre nombre page > moyenne

            Console.WriteLine();

            //DEBUT Auteur avec le moins de livre
            var auteurMoinsLivre = ListeLivres.GroupBy(l => l.Auteur).OrderBy(l => l.Count()).FirstOrDefault().Key;

            Console.WriteLine($"L'auteur avec le moins de livre est : {auteurMoinsLivre.Prenom} {auteurMoinsLivre.Nom}");
            //FIN Auteur avec le moins de livre

            Console.ReadKey();
        }
Пример #8
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();
        }
Пример #9
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();
        }
Пример #10
0
        static void Main(string[] args)
        {
            InitialiserDatas();

            Console.WriteLine("test");


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

            Console.WriteLine("Afficher la liste des prenoms des auteurs dont le nom commence par G :");
            foreach (var prenomG in CommenceParG)
            {
                Console.WriteLine(prenomG);
            }
            Console.WriteLine();

            //   ◦ Afficher l’auteur ayant écrit le plus de livres
            var auteurPlusEcrit = ListeLivres.GroupBy(l => l.Auteur).OrderByDescending(g => g.Count()).FirstOrDefault().Key;

            Console.WriteLine("auteur qui a écrit le plus de livres");
            Console.WriteLine($"{auteurPlusEcrit.Prenom} {auteurPlusEcrit.Nom}");
            Console.WriteLine();

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

            Console.WriteLine("nombre moyen de pages par livre et par auteur");
            foreach (var item in livresparAuteur)
            {
                Console.WriteLine($"{item.Key.Prenom} {item.Key.Nom} a une moyenne des pages de {item.Average(l => l.NbPages)} par livre");
            }
            Console.WriteLine();

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

            Console.WriteLine("le livre avec le plus de pages");
            Console.WriteLine(livrePlusPage.Titre);
            Console.WriteLine();

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

            Console.WriteLine("Combien ont gagné les auteurs en moyenne");
            Console.WriteLine(moyenne);
            Console.WriteLine();

            //   ◦ Afficher les auteurs et la liste de leurs livres
            Console.WriteLine("auteurs et leurs livres");

            var auteurEtLivre = ListeLivres.GroupBy(l => l.Auteur);

            foreach (var livres in auteurEtLivre)
            {
                Console.WriteLine($"Auteur : {livres.Key.Prenom} {livres.Key.Nom} ");
                foreach (var livre in livres)
                {
                    Console.WriteLine($" - {livre.Titre}");
                }
            }
            Console.WriteLine();

            //   ◦ Afficher les titres de tous les livres triés par ordre alphabétique
            Console.WriteLine("livres triés par ordre alphabétique");
            ListeLivres.Select(l => l.Titre).OrderBy(t => t).ToList().ForEach(Console.WriteLine);
            Console.WriteLine();

            //   ◦ Afficher la liste des livres dont le nombre de pages est supérieur à la moyenne
            Console.WriteLine("liste des livres dont le nombre de page est supérieur à la moyenne");
            var moyennePages      = ListeLivres.Average(l => l.NbPages);
            var livresPagesSupMoy = ListeLivres.Where(l => l.NbPages > moyennePages);

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

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

            var auteurMoinsDeLivres = ListeAuteurs.OrderBy(a => ListeLivres.Count(l => l.Auteur == a)).FirstOrDefault();

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


            Console.ReadLine();
        }
Пример #11
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();
        }