18
juin
2007
Requête LINQ : Join sur condition multiple
juin
2007
La syntaxe d’un join en LINQ est :
from e1 in enumerable1
join e2 in enumerable2 on e1.X equal e2.X
select new {e1.X, e1.Y, e1.A, e2.B}
Je voulais faire un join sur e1.X equal e2.X et e1.Y equal e2.Y. Je pensais pouvoir utiliser un && comme dans un where mais ça ne marche pas. On ne peut mettre qu’une seule condition à un join.
Anders Hejlsberg m’a donné la solution : passer par un anonymous type :
from e1 in enumerable1
join e2 in enumerable2 on new { e1.X, e1.Y } equal new { e2.X, e2.Y }
select new {e1.X, e1.Y, e1.A, e2.B}