Bonjour,

j'extrais avec Entity framework un Iqueryable de groupe comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
id    parentid name
1    null         group1 
2    null         group2 
3    null         group3 
4    1            group1.1

Maintenant, j'aimerais réorganiser mes objets de façon a avoir avec group.ChildGroups les sous groupes correspondants.

Y a t'il une façon rusée et intelligente de le faire via linq . Ma première impulsion est de transformer mon iqueryable en list et de faire une boucle sur cette liste pour ranger mes éléments. Mais je trouve cela moyen...

merci d'avance de vos lumières,


[EDIT]

voilà ce que j'ai pu faire pour l'instant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
AllGroups = new List<LocalisationGroup>();
List<LocalisationGroup> lg = servicelocalisation.GetLocalisationGroups().ToList();
foreach (LocalisationGroup g in lg.ToList())
{
  if (g.ParentGroup != null)
  {
   AllGroups.First(x => x.Id == g.ParentGroup.Id).ChildGroups.Add(g);
   }
   else
   {
    AllGroups.Add(g);
    }
}
et ainsi j'ai AllGroups qui est bien rangé. Mais cela veut dire dupliquer ma liste et par ailleurs je ne suis aps sur que ce soit la méthode la plus efficace.

[/EDIT]