我在linq中有一个查询,可以获取学生评估数据
new {x.StudentId, x.StudentAssessmentId, x.AssessmentName, x.SubmittedDate}
然后我在这个列表上执行一些操作,只获得每个学生最后一次添加的学生评估,我通过查找学生评估的最大ID来获得最后的学生评估,
所以我终于得到了所有学生的最后一份学生评估数据。
有没有办法直接在初始列表中执行此操作?
我考虑了按学生ID分组结果的方法,并选择了studentassessmentid的最大值,例如
group x.StudentAssessmentId by x.StudentId
select new {x.Key, x.Max()}
通过这种方式,我会在那里找到学生最后的学生成绩,这是我想要的,但这只会给我学生评估ID,同时我还想要其他数据,如AssessmentName,SubmittedDate等。
答案 0 :(得分: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(),
}