Est-il possible d'utiliser Except()
pour deux listes qui ont deux classes différentes mais un champ commun? J'ai List<User1>
et List<User2>
collections. Ils ont des propriétés différentes à l'exception de la colonne Id et je veux trouver les différents enregistrements entre eux en utilisant cette colonne Id. Je suis en train d'utiliser List<>.Except()
mais je reçois cette erreur:IEnumerable.Except() entre différentes classes avec un champ commun
The type arguments for method 'System.Linq.Enumerable.Except(System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerable)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
Voici ce que je suis en train:
List<User1> list1 = List1();
List<User2> list2 = List2();
var listdiff = list1.Except(list2.Select(row => row.Id));
Qu'est-ce que je fais mal?
+1 si vous faites la recherche sur '' list2' au lieu de list1'. Ou sans la recherche 'var listdiff = list1.Where (utilisateur =>! (Liste2.Any (utilisateur2 => utilisateur2.Id == user.Id));' –
Yup a remarqué cette erreur il y a quelques minutes –
+1: – Ani