0

我在 linq 中有一个查询,可以获取学生评估数据,例如

new {x.StudentId, x.StudentAssessmentId, x.AssessmentName, x.SubmittedDate}

然后我在这个列表上执行一些操作来获得每个学生最后添加的学生评估,我通过找到 studentassessment 的最大 id 来获得最后一个 studentassessment,

所以我终于得到了所有学生的最后一个学生评估数据。

有没有办法直接在初始列表中执行此操作?

我考虑了按学生ID对结果进行分组并选择最大学生评估ID的方法,例如

group x.StudentAssessmentId by x.StudentId
select new {x.Key, x.Max()}

通过这种方式,我将获得最后一个 studentassessmentid 的学生,这是我想要的,但这只会给我 studentassessment id,而我还想要其他数据,如 AssessmentName、SubmittedDate 等。

4

1 回答 1

1

尝试这样的事情:

group x.StudentAssessmentId     
by new {
        x.StudentId, 
        x.AssessmentName,
        x.SubmittedDate } 
into g
select new 
{
  g.Key.StudentId, 
  g.Key.AssessmentName, 
  g.Key.SubmittedDate,
  g.Max(),
}
于 2013-04-16T07:57:59.533 回答