J'ai une liste maîtresse d'objets complexes.
J'ai une liste d'ID INT que je dois sélectionner l'objet complexe correspondant hors de la liste principale. P>
Cela ne fonctionne pas p>
MasterListofComplexObj.Where(u => MasterListofComplexObj.Select(i => i.Id).Contains(ChildListofIntIds));
3 Réponses :
Cela devrait fonctionner:
var results = MasterListofComplexObj.Where(u => ChildListofIntIds.Contains(u.Id));
Vous êtes dans .... Merci pour l'aide. Dans mon esprit, la logique est un peu inversée, vous prenez la liste des enfants et voyez s'il contient l'ID de votre choix dans la liste des mât. Merci encore
Oui, la syntaxe n'est pas ce que vous attendez intuitivement - mais puisque vous envisagez chaque complexobj code> un par un, il a un sens
var results = from obj in MasterListofComplexObj where ChildListofIntIds.Contains(obj.Id) select obj; This is an IEnumerable. You may want to .FirstOrDefault() it to get one object. Translates to MasterListofComplexObj.Where(item => ChildListofIntIds.Contains(item.Id))No select necessary if you want the object itself and not one of its properties.
L'autre chose plus générale à examiner serait rejoindre:
var results = MasterList.Join(ChildList, (m => m.Id), (c => c), ((m,c) => m));
Avez-vous une erreur? Ou de mauvais résultats? Pourriez-vous donner des valeurs d'entrée et la sortie que vous attendez?