我正在尝试在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);
答案 0 :(得分:3)
使用SelectMany
:
var duplicates = Shop.GroupBy(r => r.Name)
.Where(x => x.Count() > 1)
.SelectMany(g=> g);
它可以帮助您在一个集合中展平每个具有多个元素的组的结果