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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }