c# - C# 使用lambda表达式从 List <Book> 提取 List <Page>

  显示原文与译文双语对照的内容
148 1

我试图从类型为Book的List 中提取页面的List,其中页面id与提供的值匹配。

一本书包含一个页面 List 。 每个页面都有一个标识。

我只是找不到正确的方法。 任何有帮助的帮助。


List<Book> books = GetBooks();


Page page = books.Select(x => x.Pages.Where(y => y.PageId == pageId)).Single();



时间: 原作者:

95 4

List<Book> books = GetBooks();


IEnumerable<Page> pages = books.SelectMany(x => x.Pages.Where(y => y.PageId == pageId));



这应该为你提供具有给定id的页面的枚举。 你需要添加 .ToList(),如果你想要 List 。

原作者:
92 5

尝试 SelectMany:


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



原作者:
...