使用Linq查找重复项但获取整个记录

所以我正在使用这段代码

var duplicates = mg.GroupBy(i => new { i.addr1, i.addr2 }) .Where(g => g.Count() > 1) .Select(g=>g.Key); GridView1.DataSource = duplicates; GridView1.DataBind(); 

查找并列出基于addr1和addr2的表中的重复项。 这段代码唯一的问题是它只给我一对addr1和addr2,当我真的想要显示记录的所有字段时,它们是重复的。 (所有字段,如ID,addr1,addr2,城市,州……)

有任何想法吗 ?

要获取所有值,可以在IGrouping上使用ToList()

 var duplicates = mg.GroupBy(i => new { i.addr1, i.addr2 }) .Where(g => g.Count() > 1) .Select(g => new {g.Key, Values = g.ToList()}); 

您应该使用First()而不是Key

 var duplicates = mg.GroupBy(i => new { i.addr1, i.addr2 }) .Where(g => g.Count() > 1) .Select(g => g.First()); 

它返回每个重复组的第一行