如何根据列

时间:2016-09-06 19:17:14

标签: entity-framework linq entity-framework-4 entity-framework-5

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

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);

1 个答案:

答案 0 :(得分:3)

使用SelectMany

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

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