Bonjour,
je fais quelque essais pour rendre une méthode "générique" (je ne sais pas si c'est le bon terme ici).
J'ai donc une classe personne (Nom,Prenom,Pays,Age), une classe PersonneS qui est une List<Personne>, j'ai créer une méthode qui me retourne sous forme d'un Dictionary<string, int> le nombre de personne pour une propriété donnée ce qui m'évite de créer une méthode pour chaque propriété:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 public class Personnes : List<Personne>
    {
 
        public Personnes RecupererTous()
        {
            return new DB().RecupererPersonne();
        }
 
        public Dictionary<string, int> PersonnePar(string nomPropriete)
        {
            Dictionary<string, int> personnePar = new Dictionary<string, int>();
            try
            {
                if (this == null || this.Count == 0)
                {
                    this.AddRange(RecupererTous());
                }
 
                this.GroupBy(p => p.GetType().GetProperty(nomPropriete).GetValue(p, null)).Select(p => new
                {
                    Key = p.Key.ToString(),
                    Value = p.Count()
                })
                .ToList()
                .ForEach(t => personnePar.Add(t.Key, t.Value));
                // this.ForEach(p => NombreParPropriete(p, personneParPays, nomPropriete));
 
 
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return personnePar;
        }
j'aimerais déjà pouvoir directement retourner un Dictionary<string, int> avec ma requête linq et rendre ce Dictionnaire un peu plus générique par la suite (avoir un Dictionary<Tkey, int> dans le cas ou la propriété n'est pas forcément une string).

Si quelqu'un aurait une piste pour moi Merci.

(C'est un petit exercice personnel qui ne rentre pas dans le cadre d'un projet)