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

Pra*_*bhu 1 linq entity-framework entity-framework-4 entity-framework-5

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

name age
---- ---
john 15
john 16
jack 20
jill 26
sam  10
sam  12
Run Code Online (Sandbox Code Playgroud)

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

name age
---- ---
john 15
john 16
sam  10
sam  12
Run Code Online (Sandbox Code Playgroud)

我尝试了这样的事情,但我认为这会给我一个分组结果,我认为:

var duplicates = Shop.GroupBy(r => r.Name)
                     .Where(x => x.Count() > 1)
                     .Select(val => val.Key);
Run Code Online (Sandbox Code Playgroud)

oct*_*ccl 5

使用SelectMany

var duplicates = Shop.GroupBy(r => r.Name)
                     .Where(x => x.Count() > 1)
                     .SelectMany(g=> g);
Run Code Online (Sandbox Code Playgroud)

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