使用Linq查找重复项,但获得整个记录
本文关键字:记录 查找 Linq 使用 | 更新日期: 2023-09-27 18:06:46
所以我使用这个代码
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());
返回每个重复组的第一行