【发布时间】:2021-07-08 09:21:32
【问题描述】:
我想使用 LINQ 按两列分组(Parent_Id 和 Name)检索数据,并仅获取具有相同分组值的行的结果。
Child
---------
Id Parent_Id Name
1 1 c1
2 1 c2
3 2 c1 <-----
4 2 c1 <-----
5 3 c2
6 3 c3
7 4 c4 <-----
如您所见,对于Parent_Id 1 和2,Name 是不同的。所以,我不知道那些行。
我想要的结果是这样的
Parent_Id Name
2 c1
4 c4
我试过的是
from c in Child
group c by new
{
c.Parent_Id,
c.Name
} into gcs
select new Child_Model()
{
Parent_Id = gcs.Key.Parent_Id,
Name= gcs.Key.Name
};
但它返回所有行。
【问题讨论】:
-
所以你想要那些
Name和Parent_Id组合至少出现两次的元素?还是您只想要该组合点击率最高的那些? -
@lidqy,如果
Name和Parent_Id在 group 之后相同,我会抓住这一行。 -
您想要所有出现 2 次或多次相同 p-id+name 的人吗?还是只有一个 - 最多?我知道在你的例子中只有一个,但在现实生活中数据可能会改变......
-
@lidqy,我已经更新了我的问题。
-
对于 Parent_Id 1 和 2,名称不同 -- 我猜你的意思是 Parent_Id 1 和 3?