0
votes

Extraire une liste à partir d'une liste avec une expression Lambda

J'essaie d'extraire une liste de page à partir d'une liste de types de types, où l'ID de page correspond à la valeur fournie.

Un livre contient une liste de pages. Chaque page a une carte d'identité.

Je n'arrive tout simplement pas à bien réussir. Toute aide grandement appréciée. xxx


1 commentaires

Vous voulez qu'il retourne ienumerable ? Pouvez-vous avoir plusieurs pages avec le même ID?


4 Réponses :


1
votes

Je pense que vous êtes après SelectMany code> . Ceci est pour s'il y ait plusieurs pages dans un livre avec le pageIID donné code>: xxx pré>

Cependant, s'il ne peut y avoir qu'une seule page dans un livre avec le Donné pageID code>, vous souhaiterez peut-être: p>

var pages = hooks.SelectMany(book => book.Pages).Where(x => x.PageId == pageId);


0 commentaires

0
votes
List<Book> books = GetBooks();
IEnumerable<Page> pages = books.SelectMany(x => x.Pages.Where(y => y.PageId == pageId));
This should give you a Enumeration of the pages with the given id. You need to add .ToList() if you want a list instead.

0 commentaires

1
votes

Essayez SELECTMANY CODE>:

Page page = books.SelectMany(x => x.Pages).Where(x => x.PageId == pageId).FirstOrDefault();


0 commentaires

0
votes

et la version LINQ de cette requête est la suivante: xxx

qui est agréable parce que vous obtenez le comportement SELECTMANY en foring-down avec de clauses.


0 commentaires