【问题标题】:Group databse json objects in an array based on unique id in C#基于 C# 中的唯一 id 在数组中分组数据库 json 对象
【发布时间】:2021-05-04 06:19:11
【问题描述】:

我有一个测验应用程序,学生在其中尝试不同周的多个测验,并且分数保存在一个名为 StudentScores 的表中。我想要的只是检索数据(创建一个 API),因为它按学生 ID 分组,并且所有周分数都基于相同的 ID 求和。 将此视为我的 StudentScores 表。

StID Week Score 
1     1     10
1     3     20
2     1     20
2     2     10
3     1     30
3     3     20

这是我到目前为止所做的。

      [HttpGet]
        [Route("StudentsScore")]
        public ActionResult GetStudentsScore()
        {
            var courseWeek = db.StudentScores
                
                .Select(c => c.Score).Sum();
                
            return new JsonResult(courseWeek);       
        }

目前它正在返回所有分数的总和。

110

我希望这个 API 在 POSTMAN 中返回它。

[
 {1:30},
 {2:30},
 {3:50}
]

我们将不胜感激任何形式的帮助。谢谢:)

【问题讨论】:

    标签: asp.net asp.net-core asp.net-web-api


    【解决方案1】:

    你可以试试下面的代码:

     var courseWeek = db.StudentScores.GroupBy(s => s.StID)
                .Select(x => new Dictionary<int,int>()
                {
                    {
                        x.Key,
                        x.Sum(i=>i.Score)
                    } 
                });
    

    测试结果:

    【讨论】:

    • 你能解释一下这个解决方案中的 x.Key 是什么吗?
    • GroupBy后,类型变为IGrouping类型,x.Key得到IGrouping的key
    • Doc.
    猜你喜欢
    • 1970-01-01
    • 2023-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    相关资源
    最近更新 更多