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
| using System;
2. using System.Collections.Generic;
3.
4. namespace Chap2 {
5. class Program6 {
6. static void Main(string[] args) {
7. // un tableau de personnes
8. Personne[] personnes1 = { new Personne("claude", "pollon", 25), new Personne("valentine",
"germain", 35), new Personne("paul", "germain", 32) };
9. // affichage
10. Affiche("Tableau à trier", personnes1);
11. // tri selon le nom
12. Array.Sort(personnes1, new CompareNoms());
13. // affichage
14. Affiche("Tableau après le tri selon les nom et prénom", personnes1);
15. // tri selon l'âge
16. Array.Sort(personnes1, new CompareAges());
17. // affichage
18. Affiche("Tableau après le tri selon l'âge", personnes1);
19. }
20.
21. static void Affiche(string texte, Personne[] personnes) {
22. Console.WriteLine(texte.PadRight(50, '-'));
23. foreach (Personne p in personnes) {
24. Console.WriteLine(p);
25. }
26. }
27. }
28.
29. // classe de comparaison des noms et prénoms des personnes
30. class CompareNoms : IComparer<Personne> {
31. public int Compare(Personne p1, Personne p2) {
32. // on compare les noms
33. int i = p1.Nom.CompareTo(p2.Nom);
34. if (i != 0)
35. return i;
36. // égalité des noms - on compare les prénoms
37. return p1.Prenom.CompareTo(p2.Prenom);
38. }
39. }
40.
41. // classe de comparaison des ages des personnes
42. class CompareAges : IComparer<Personne> {
43. public int Compare(Personne p1, Personne p2) {
44. // on compare les ages
45. if (p1.Age > p2.Age)
46. return 1;
47. else if (p1.Age == p2.Age)
48. return 0;
49. else
50. return -1;
51. }
52. }
53.
54. } |
Partager