Des challenges pour les devs–Comment avoir une liste unique de Couleurs avec seulement Linq

Lors de mes formations, je propose le challenge suivant :

Nous avons une liste d’apprenants, qui ont une couleur de pull, et une couleur de pantalon.

Comment rĂ©ussir Ă  avoir, grĂące Ă  une requĂȘte LinQ, la liste des couleurs, sans doublons dans la liste ?

Je vous propose de relevez le défi !

Et vous pourrez alors allez voir la solution, dans le prochain article.

Pour commencer, voici la classe Apprenant.

Une classe Apprenant

public class Apprenant
    {
        public int Sexe { get; set; } //1 : fille, 2 : garcon

       public bool CheveuxLong { get; set; }

       public bool PorteEcharpe { get; set; }

       public decimal Taille { get; set; }

       public bool ALunettes { get; set; }

       public System.Drawing.Color CouleurHabitHaut { get; set; }

       public System.Drawing.Color CouleurHabitBas { get; set; }
    }

Une liste d’apprenants

List<Apprenant> apprenantList = new List<Apprenant>();

           apprenantList.Add(new Apprenant()
            {
                ALunettes = false,
                CheveuxLong = false,
                CouleurHabitBas = System.Drawing.Color.Blue,
                CouleurHabitHaut = System.Drawing.Color.Gray,
                PorteEcharpe = true,
                Sexe = 2,
                Taille = 1.78M
            });
           
            apprenantList.Add(new Apprenant()
            {
                ALunettes = false,
                CheveuxLong = true,
                CouleurHabitBas = System.Drawing.Color.Black,
                CouleurHabitHaut = System.Drawing.Color.Maroon,
                PorteEcharpe = true,
                Sexe = 1,
                Taille = 1.56M
            });

           apprenantList.Add(new Apprenant()
            {
                ALunettes = true,
                CheveuxLong = false,
                CouleurHabitBas = System.Drawing.Color.Black,
                CouleurHabitHaut = System.Drawing.Color.DarkRed,
                PorteEcharpe = true,
                Sexe = 2,
                Taille = 1.94M
            });

           apprenantList.Add(new Apprenant()
            {
                ALunettes = false,
                CheveuxLong = true,
                CouleurHabitBas = System.Drawing.Color.Blue,
                CouleurHabitHaut = System.Drawing.Color.White,
                PorteEcharpe = false,
                Sexe = 1,
                Taille = 1.60M
            });

           apprenantList.Add(new Apprenant()
            {
                ALunettes = false,
                CheveuxLong = true,
                CouleurHabitBas = System.Drawing.Color.Black,
                CouleurHabitHaut = System.Drawing.Color.Gray,
                PorteEcharpe = false,
                Sexe = 1,
                Taille = 1.65M
            });

           apprenantList.Add(new Apprenant()
            {
                ALunettes = true,
                CheveuxLong = false,
                CouleurHabitBas = System.Drawing.Color.Blue,
                CouleurHabitHaut = System.Drawing.Color.Gray,
                PorteEcharpe = true,
                Sexe = 2,
                Taille = 1.90M
            });

           apprenantList.Add(new Apprenant()
            {
                ALunettes = false,
                CheveuxLong = false,
                CouleurHabitBas = System.Drawing.Color.Blue,
                CouleurHabitHaut = System.Drawing.Color.Black,
                PorteEcharpe = false,
                Sexe = 2,
                Taille = 1.85M
            });

           apprenantList.Add(new Apprenant()
            {
                ALunettes = false,
                CheveuxLong = false,
                CouleurHabitBas = System.Drawing.Color.Blue,
                CouleurHabitHaut = System.Drawing.Color.Gray,
                PorteEcharpe = false,
                Sexe = 2,
                Taille = 1.88M
            });

           apprenantList.Add(new Apprenant()
            {
                ALunettes = false,
                CheveuxLong = false,
                CouleurHabitBas = System.Drawing.Color.Blue,
                CouleurHabitHaut = System.Drawing.Color.Black,
                PorteEcharpe = false,
                Sexe = 2,
                Taille = 1.87M
            });

           apprenantList.Add(new Apprenant()
            {
                ALunettes = true,
                CheveuxLong = false,
                CouleurHabitBas = System.Drawing.Color.DarkRed,
                CouleurHabitHaut = System.Drawing.Color.Coral,
                PorteEcharpe = true,
                Sexe = 2,
                Taille = 1.85M
            });

Bon challenge ! Smile

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639