Linq variable locale ou group by ?
Bonjour est-il possible de déclarer une variable locale dans une expression Linq.
Quelque chose du genre :
Code:
1 2 3 4
|
var ret = (from a in m_Liste
where (int nb => l.m_SousListe.Count(sl => sl.m_Condition)) > 0
select new { arRef = l.m_Ref, arNb = nb}).ToArray(); |
J'ai cherché mais sans auccès...
Mon but est d'avoir uniquement les items de la liste qui contiennent une sous liste qui vérifie une condition et à coté de la référence de l'item de la liste principale le nombre d'item sous items de la sous liste qui sont vérifié.
Qui a suivi ? ^^ En fait c'est simple; pour comprendre il faut juste regarder le résultat attendu en fin de post ça saute au yeux mais c'est assez dur avec cet exemple générique......
J'ai bien essayé cela :
Code:
1 2 3 4 5
|
var ret = from l in m_Liste
from sl in l.m_SousListe
where sl.m_Condition
select new { arRef = l.m_Ref, arNb = a.m_Geometries.Where(sl2=> sl2.m_Condition).Count() }; |
mais ce n'est pas très propre et en plus ça duplique mes lignes :
item1 / 3
item1 / 3
item1 / 3
item2 / 1
item3 / 2
item3 / 2
Or je souhaiterais ceci :
item1 / 3
item2 / 1
item3 / 2
D'avance merci à ceux qui se pencheront sur mon soucis.