Dans C # linq to objets, il est très simple d'utiliser la clause "join-on-equals-into" pour exécuter la connexion externe gauche. Cependant, dans certains cas, l'utilisation de la clause où peut être plus souhaitable.
Pour la connexion interne, il existe une solution simple:
Cependant, pour la connexion externe gauche, le problème est que le nombre de numéros opérationnels du côté droit n'est pas trouvé lorsque l'élément correspondant ne peut être trouvé. Considérez les tentatives suivantes:
List<joinpair> innerFinal = (from l in lefts from r in rights where l.Key == r.Key select new JoinPair { LeftId = l.Id, RightId = r.Id});
Cette méthode a un inconvénient: il assurait la reconnaissance silencieuse du bouton côté gauche qui n'est pas apparié, ce qui peut provoquer une ambiguïté. Pour surmonter ce problème, nous pouvons utiliser la méthode "defaultIFempty":
List<joinpair> leftFinal = (from l in lefts from r in rights select new JoinPair { LeftId = l.Id, RightId = ((l.Key==r.Key) ? r.Id : 0 });
Cette solution utilise la méthode "defaulfIFempty" pour fournir la valeur par défaut au bouton de gauche non-correspondance pour assurer la précision des résultats.
var q = from l in lefts join r in rights on l.Key equals r.Key into ps_jointable from p in ps_jointable.DefaultIfEmpty() select new JoinPair { LeftId = l.Id, RightId = p == null ? 0 : p.Id };
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!