我有以下两个类:
书页
章节
我有一个book_pages及其章节标题的集合。我希望能够按照“chapter_title”在“章节”集合中出现的顺序对 book_page 集合进行排序,然后按“章节内的顺序”字段进行排序。
我尝试在chapter_title 列上编写连接,然后按chapter.order 排序,然后按page.order_within_page 排序,但没有运气。有什么建议么?
我的代码:
var ordered_pages= from chapter in chapters
join page in book_pages
on chapter.chapter_title equals page.chapter_title
select new{order = chapter.order,page = page}
var finalList = from row in ordered_pages.OrderBy(c => c.order).ThenBy(p =>p.page.order_within_chapter)
select row.page;
这并没有真正起作用,即使这样做也很丑陋。我是否缺少使用 LINQ 来执行此操作的某种方法?
最佳答案
var a = db.Chapters;
var b = db.Pages
.Select(p => new { page = p, chapter = a.FirstOrDefault(q => q.Title == p.Caption) })
.OrderBy(p=>p.chapter.order).ThenBy(p=>p.page.order).Select(p=>p.page).ToList();
或者
var b=db.Pages.Join(a, p => p.Caption, p => p.Title,
(p, q) => new { page = p, chapter = q }).OrderBy(p => p.page.Code)
.ThenBy(p => p.chapter.t1).Select(p=>p.page).ToList();
关于c# - Linq to SQL join 然后按顺序排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8609149/