-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
140 lines (110 loc) · 5.09 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using ProjetLinq.BO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TP2_LINK
{
class Program
{
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();
}
private static List<Auteur> ListeAuteurs = new List<Auteur>();
private static List<Livre> ListeLivres = new List<Livre>();
private static void InitialiserDatas()
{
ListeAuteurs.Add(new Auteur("GROUSSARD", "Thierry"));
ListeAuteurs.Add(new Auteur("GABILLAUD", "Jérôme"));
ListeAuteurs.Add(new Auteur("HUGON", "Jérôme"));
ListeAuteurs.Add(new Auteur("ALESSANDRI", "Olivier"));
ListeAuteurs.Add(new Auteur("de QUAJOUX", "Benoit"));
ListeLivres.Add(new Livre(1, "C# 4", "Les fondamentaux du langage", ListeAuteurs.ElementAt(0), 533));
ListeLivres.Add(new Livre(2, "VB.NET", "Les fondamentaux du langage", ListeAuteurs.ElementAt(0), 539));
ListeLivres.Add(new Livre(3, "SQL Server 2008", "SQL, Transact SQL", ListeAuteurs.ElementAt(1), 311));
ListeLivres.Add(new Livre(4, "ASP.NET 4.0 et C#", "Sous visual studio 2010", ListeAuteurs.ElementAt(3), 544));
ListeLivres.Add(new Livre(5, "C# 4", "Développez des applications windows avec visual studio 2010", ListeAuteurs.ElementAt(2), 452));
ListeLivres.Add(new Livre(6, "Java 7", "les fondamentaux du langage", ListeAuteurs.ElementAt(0), 416));
ListeLivres.Add(new Livre(7, "SQL et Algèbre relationnelle", "Notions de base", ListeAuteurs.ElementAt(1), 216));
ListeAuteurs.ElementAt(0).addFacture(new Facture(3500, ListeAuteurs.ElementAt(0)));
ListeAuteurs.ElementAt(0).addFacture(new Facture(3200, ListeAuteurs.ElementAt(0)));
ListeAuteurs.ElementAt(1).addFacture(new Facture(4000, ListeAuteurs.ElementAt(1)));
ListeAuteurs.ElementAt(2).addFacture(new Facture(4200, ListeAuteurs.ElementAt(2)));
ListeAuteurs.ElementAt(3).addFacture(new Facture(3700, ListeAuteurs.ElementAt(3)));
}
}
}