a obtenu 2 listes, je souhaite pouvoir obtenir une liste du propide manquant pour chacun des certificats en utilisant C #
list1
Certid, propide
10,1
11,3 P>
list2
Propide, Nom
1, PROP1
2, PROP2
3, ProP3 P>
Liste de résultats
Certid, propide
10,2
10,3
11,1
11,2 P>
var rows = list1.Where(ra => !List2.AsEnumerable().Any(rb => rb.Propid == ra.propid)).tolist();
3 Réponses :
La manière la plus simple que je vois pour votre problème est de calculer le produit cartésien des articles et de trouver la différence (exemple avec des tuples, je ne sais pas quel type vous utilisez dans vos listes)
Vous pouvez faire une jointure croisée, puis filtrer pour pas égaux: Malheureusement, LINQ ne permet que "égale" dans l'opérateur "ON" pour une déclaration de jointure. Donc, vous ne pouvez pas l'utiliser. P> p>
Vous pouvez utiliser Selectmany strong> a aplaticé toute la liste, comme le code suivant: pour tester: p> 1 - Classes: P> CertId : 10, PropId : 2
CertId : 10, PropId : 3
CertId : 11, PropId : 1
CertId : 11, PropId : 2
L'esprit nous aide à comprendre ce que vous avez essayé jusqu'à présent @Trailererman?
Qu'avez-vous essayé? L'absence d'une question réelle montre que vous voulez juste que quelqu'un le fasse pour vous, ce qui n'est pas ce que ce site est à propos.
@ mclark1129 .. Je nouveau à toute la chose de Linq ... ne sais pas vraiment où commencer désolé. Il suffit de besoin d'aide pour me diriger dans la bonne direction. Ne demandant à personne de le faire pour moi, mais une certaine compréhension de la manière de résoudre le problème.
Afficher la solution non-Linq, puis. Le point est de voir le code que vous avez afin que nous puissions voir où aider.
@Trailerman Totalement compréhensible, malheureusement, la question est un peu ouverte pour en faire un bon ajustement pour le format de SO. Voir Stackoverflow.com/help/how-to-ask pour un lieu de départ pour mieux formater les choses. Je pense finalement que vous allez vouloir essayer une solution spécifique et rapporter des erreurs ou des résultats non valides que vous pourriez recevoir.
Commencez par supprimer
asen-témoine () code>. Ce n'est pas utile dans ce contexte.