我有来自某个源的数据表结构
bookid title author
如果该书有多位作者,该表可以包含相同的书(重复)。像
Book id title author
32 Book1 P. Samsom
45 Book34 R. Englund
45 Book34 H. Granger
56 Book45 F. Lister
等
现在第二本和第三本书是相同的(它有2位作者)。当显示表格(可能包含数千个项目)时,我不想两次或更多次显示同一本书。显示其中一个就足够了(我不在乎)。
在桌面上做一个选择distinct将无济于事。做一个选择明显忽略作者的作品,但我需要至少一个作者。所以我想要做的是找到一种最有效的方法来创建一个新的表或视图,忽略任何“重复”的项目至少保留一个作者。
有什么想法吗?
答案 0 :(得分:3)
var books = Books.GroupBy(x=>x.Title).Select(x=>x.First()).ToList();
答案 1 :(得分:0)
var result = books.GroupBy(b => b.bookid)
.Select(g =>
new {
id = g.Key,
title = g.First().title,
authors = g.Select(a=>a.author).ToList()
})
.ToList();
答案 2 :(得分:0)