Bien le bonjour

Je vous expose mon problème :

J'ai un modèle de classe, Categorie.
Chaque catégorie peut avoir des sous-catégorie, représentée par une List<Categorie> en variable privée.

Voici une version simplifiée :

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
 
public class Categorie
{
        private List<Categorie> listOfCategories;
 
        public string Id { get; set; }
        public string Name { get; set; }
 
 
        public List<Categorie> ListOfCategories
        {
            get
            {
                return listOfCategories;
            }
        }
}
Je voudrais effectuer une recherche sur TOUTES les sous-catégories d'une catégorie définie, mais je ne peux pas savoir à l'avance combien de niveau il y aura (au moins 3 ou 4).

J'ai essayé avec un SelectMany, mais cela ne m'emmène pas assez loin.

J'y arrive avec une fonction récursive, mais le temps d'exécution est trooooooop leeeeeeeent

Je voudrais donc "l'aplatir" pour faire ma recherche en une seule fois sur toutes les catégories enfants

Existe-t-il une manière plus élégante et plus performante, une requête LINQ peut-être ?