所以我正在使用此代码
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,城市,州......)
有什么想法吗?
答案 0 :(得分:13)
要获取所有值,您可以在ToList()
IGrouping
var duplicates = mg.GroupBy(i => new { i.addr1, i.addr2 })
.Where(g => g.Count() > 1)
.Select(g => new {g.Key, Values = g.ToList()});
答案 1 :(得分:8)
您应该使用First()
代替Key
:
var duplicates = mg.GroupBy(i => new { i.addr1, i.addr2 })
.Where(g => g.Count() > 1)
.Select(g => g.First());
它返回每个重复组的第一行