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