Asp.net Lambda表达式。按日期获取每个人的第一个结果
我有Asp.net Lambda表达式。按日期获取每个人的第一个结果,asp.net,list,lambda,Asp.net,List,Lambda,我有列表的结果对象,这些对象具有以下属性{person,score,regdate}。我只想选择每个人的第一个注册分数(因此,我为每个人得到1个结果,即使这个人有更多的结果) 我需要这个,这样我就可以用它们来为第一次的结果做一个平均分数。如果您的初始结果列表是: List<Result> results=... 这对我不起作用,但我找到了一种有效的方法。var firstResults=result.GroupBy(x=>x.Person)。选择(g=>g.Aggregate((r
列表
的结果对象,这些对象具有以下属性{person
,score
,regdate
}。我只想选择每个人的第一个注册分数(因此,我为每个人得到1个结果,即使这个人有更多的结果)
我需要这个,这样我就可以用它们来为第一次的结果做一个平均分数。如果您的初始结果列表是:
List<Result> results=...
这对我不起作用,但我找到了一种有效的方法。var firstResults=result.GroupBy(x=>x.Person)。选择(g=>g.Aggregate((r1,r2)=>r1.regDate
var scores = results
.GroupBy(r => r.person.Id)
.Select(g => g
.OrderBy(res=>res.regdate)
.First()
);