Bonsoir,
J'ai écris ce code et je cherche l'équivalent avec un fonction lambda, mais je n'arrive pas à trouver comment faire:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| var fcts1 = from f in mdc.Fonctions
join u in mdc.Users on f.Id equals u.Fonction into usrs
orderby f.Nom
select new
{
Fonction = f,
Users = usrs
};
Console.WriteLine("\nListe des utilisateurs par fonction");
foreach (var f in fcts1)
{
Console.WriteLine("{0}", f.Fonction.Nom);
foreach (var u in f.Users)
{
Console.WriteLine("\t{0} {1}", u.Nom, u.Prenom);
}
} |
Je pensais à quelquechose du genre suivant :
1 2 3 4 5 6 7 8 9 10
| var fcts2 = mdc.Fonctions
.Join(mdc.Users,
f => f.Id,
u => u.Fonction,
(f, u) => new
{
Fonction = f,
Users = u
}
); |
mais cela ne fonctionne pas.
Question subsidiaire :
Comment ajouter sur order sur le join ?
Je voudrais obtenir les fonctions par ordre alphabétique et pour chaque les utilisateur triés pas nom, prénom
Les essais suivants ne compilent pas :
orderby f.Nom, u.Nom, u.Prenom
orderby f.Nom, usrs.Nom, usrs.Prenom
pour l'équivalent de ces order en fonction lambda, je ne sais pas du tout...
Merci de votre aide.
Ben
Partager