使用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,城市,州…)

有什么想法吗?

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

要获得所有值,可以在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());

返回每个重复组的第一行