如何根据列查找所有重复的记录

How to find all records that have a duplicate based on a column

我正在尝试在 LINQ/Entity 框架中构建一个查询,该查询将 return 所有基于一列的重复行。但是,我不想对它们进行分组,我实际上想要获取所有具有重复项的行。

name age
---- ---
john 15
john 16
jack 20
jill 26
sam  10
sam  12

如何根据名称列获取包含重复行的列表?这是我期待的结果集:

name age
---- ---
john 15
john 16
sam  10
sam  12

我尝试过类似的方法,但我认为这会给我一个分组结果:

var duplicates = Shop.GroupBy(r => r.Name)
                     .Where(x => x.Count() > 1)
                     .Select(val => val.Key);

使用SelectMany:

var duplicates = Shop.GroupBy(r => r.Name)
                     .Where(x => x.Count() > 1)
                     .SelectMany(g=> g);

这将帮助您将在一个集合中具有多个元素的每个组的结果展平