C# 提取列表<;第页>;从列表中<;书籍>;带着lambda的表情
我试图从类型为Book的列表中提取页面列表,其中页面id与提供的值匹配 一本书包含一系列页面。每个页面都有一个Id 我好像就是做不好。非常感谢您的帮助C# 提取列表<;第页>;从列表中<;书籍>;带着lambda的表情,c#,entity-framework,lambda,C#,Entity Framework,Lambda,我试图从类型为Book的列表中提取页面列表,其中页面id与提供的值匹配 一本书包含一系列页面。每个页面都有一个Id 我好像就是做不好。非常感谢您的帮助 List<Book> books = GetBooks(); Page page = books.Select(x => x.Pages.Where(y => y.PageId == pageId)).Single(); List books=GetBooks(); Page Page=books.Select(x=>x
List<Book> books = GetBooks();
Page page = books.Select(x => x.Pages.Where(y => y.PageId == pageId)).Single();
List books=GetBooks();
Page Page=books.Select(x=>x.Pages.Where(y=>y.PageId==PageId)).Single();
我想你在找我。这适用于一本书中是否有多个页面具有给定的pageId
:
var pages = books.SelectMany(book => book.Pages.Where(page => page.PageId == pageId));
但是,如果一本书中只有一页具有给定的pageId
,您可能需要:
var pages = books.Select(book => book.Pages.Single(page => page.PageId == pageId));
如果书中可能有或可能没有具有给定pageId
的页面,则您可能需要:
var pages = hooks.SelectMany(book => book.Pages).Where(x => x.PageId == pageId);
我想你在找我。这适用于一本书中是否有多个页面具有给定的pageId
:
var pages = books.SelectMany(book => book.Pages.Where(page => page.PageId == pageId));
但是,如果一本书中只有一页具有给定的pageId
,您可能需要:
var pages = books.Select(book => book.Pages.Single(page => page.PageId == pageId));
如果书中可能有或可能没有具有给定pageId
的页面,则您可能需要:
var pages = hooks.SelectMany(book => book.Pages).Where(x => x.PageId == pageId);
List books=GetBooks();
IEnumerable pages=books.SelectMany(x=>x.pages.Where(y=>y.PageId==PageId));
这将为您提供具有给定id的页面的枚举。如果您想要列表,则需要添加.ToList()
。list books=GetBooks();
IEnumerable pages=books.SelectMany(x=>x.pages.Where(y=>y.PageId==PageId));
这将为您提供具有给定id的页面的枚举。如果您想要列表,则需要添加
.ToList()
。尝试选择多个:
Page page = books.SelectMany(x => x.Pages).Where(x => x.PageId == pageId).FirstOrDefault();
尝试选择多个
:
Page page = books.SelectMany(x => x.Pages).Where(x => x.PageId == pageId).FirstOrDefault();
该查询的LINQ版本为:
from b in books
from p in b.Pages
where p.PageId == pageId
select p
这很好,因为通过从
子句中向下钻取,可以获得SelectMany
行为。该查询的LINQ版本是:
from b in books
from p in b.Pages
where p.PageId == pageId
select p
这很好,因为您通过从
子句中向下钻取,获得了SelectMany
行为。您希望它返回IEnumerable
?是否可以有多个具有相同Id的页面?是否希望它返回IEnumerable
?您可以有多个具有相同Id的页面吗?