gpt4 book ai didi

c# - LINQ 在单列上分组

转载 作者:行者123 更新时间:2023-11-30 16:45:05 24 4
gpt4 key购买 nike

我有一个如下所示的数据库表:

ID       USERID       DATE            NAME
1 1 01-01-2001 aaaa
1 2 01-02-2001 aaaa
1 3 01-03-2001 aaaa
2 5 02-02-2002 bbbb
2 6 02-02-2002 bbbb
2 7 02-02-2002 bbbb

所以我想按 ID 对所有内容进行分组,因此每个 ID 都有多个 USERIDs。但是 DATENAME 都是一样的。那么如何将其作为 linq 查询获取呢?

到目前为止我想到了这样做,并且这对用户有用

from table in context.table
group table.USERID by table.ID into grp
orderby grp.Key descending
select new
{
ID = grp.Key,
Users = grp.ToList()
}

但是,如果我添加其他项目(如 DATE),这将不起作用,因为 DATE 有时会不同。但是,如果它会选择第一个日期就好了。

编辑我想要的结果是:

ID       Users        DATE            NAME
1 1,2,3 01-01-2001 aaaa
2 5,6,7 02-02-2002 bbbb

最佳答案

您按多列分组:

from table in context.table
group new{table.UserID,table.Date} by new{table.ID,table.Name} into grp
orderby grp.Key.ID descending
select new
{
ID = grp.Key.ID,
Date=grp.FirstOrDefault().Date,
Name=grp.Key.Name,
Users = grp.Select(e=>e.UserID).ToList()
}

关于c# - LINQ 在单列上分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com