1

あるソースからのデータテーブルがあります。

bookid タイトル 著者

本に複数の著者がいる場合、テーブルには同じ本 (繰り返し) を含めることができます。お気に入り

Book id    title    author    
32         Book1    P. Samsom
45         Book34   R. Englund
45         Book34   H. Granger
56         Book45   F. Lister

現在、2 冊目と 3 冊目は同じです (著者が 2 人います)。テーブル (何千ものアイテムを含む可能性があります) を表示するとき、同じ本を 2 回以上表示したくありません。そのうちの1つを表示するだけで十分です(私は気にしません)。

ここでは、テーブルで個別に Select を実行しても役に立ちません。作成者を無視して個別の選択を行うことはできますが、少なくとも 1 人の作成者が必要です。したがって、私がやりたいことは、少なくとも1人の作成者を保持する「重複した」アイテムを無視して、このテーブルから新しいテーブルまたはビューを作成する最も効果的な方法を見つけることです.

何か案は?

4

3 に答える 3

3
var books = Books.GroupBy(x=>x.Title).Select(x=>x.First()).ToList();
于 2012-09-01T17:18:53.717 に答える
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();
于 2012-09-01T17:28:39.093 に答える
0

DistinctByMoreLINQから

var results = books.DistinctBy(x => x.title).ToList();
于 2012-09-05T09:08:48.453 に答える