Linq: Quelle est la différence entre == et égaux dans une jointure?
Je me suis toujours demandé pourquoi il y a un equals
mot-clé dans linq rejoint plutôt que d'utiliser l'opérateur==.
Property deadline =
(from p in properties
join w in widgets
on p.WidgetID equals w.ID
select p).First();
Au lieu de
Property deadline =
(from p in properties
join w in widgets
on p.WidgetID == w.ID
select p).First();
[MODIFIER] Reformulé la question et a révisé les exemples.
Vous devez vous connecter pour publier un commentaire.
Il y a une belle explication par Matt Warren à La Teigne:
Cependant, cela concerne
join
. Je ne suis pas sûrequals
doit être utilisé dans votre exemple de code (c'est aussi le compiler?).Votre première version n'est pas compilé. Vous seulement utilisation
equals
dans les jointures, de faire les deux moitiés séparées de l'équi-jointure clair pour le compilateur.equals
lors de l'exécution d'unjoin
dans une expression de requête. Cela fait partie de la syntaxe.