110,568
社区成员
发帖
与我相关
我的任务
分享
List<Grade> gradeList = new List<Grade>() {
new Grade{ ID=1, UserID=100, _Grade=10, DT= DateTime.Parse("2010-10-12"),IsNormal=true },
new Grade{ ID=2, UserID=100, _Grade=20, DT= DateTime.Parse("2010-10-09"),IsNormal=true },
new Grade{ ID=3, UserID=200, _Grade=11, DT= DateTime.Parse("2010-10-11"),IsNormal=true },
new Grade{ ID=4, UserID=100, _Grade=18, DT= DateTime.Parse("2010-10-18"),IsNormal=true },
new Grade{ ID=5, UserID=300, _Grade=2, DT= DateTime.Parse("2010-10-10"),IsNormal=true },
new Grade{ ID=6, UserID=300, _Grade=15, DT= DateTime.Parse("2010-10-13"),IsNormal=true },
new Grade{ ID=7, UserID=300, _Grade=16, DT= DateTime.Parse("2010-10-02"),IsNormal=false }
};
var q = gradeList.Where(k => k._Grade == gradeList.Max(s => s._Grade));
var query1 = from g in gradeList
where g.ID.Equals(from f in gradeList select gradeList.Max(s => s.ID))
select g;
var query1 = from g in gradeList
where g.ID.Equals((from f in gradeList select gradeList.Max(s => s.ID)).First())
//把结果打印一下,你应该知道原因了吧...
var query1 = from f in gradeList select gradeList.Max(s => s.ID);
foreach(var q in query1)
{
Console.WriteLine(q);
}
/*
结果:
7
7
7
7
7
7
7
*/
var query1 = from g in gradeList
let maxId=gradeList.Max(g1=>g1.ID)
where g.ID.Equals(maxId)
select g;
foreach(var q in query1)
{
Console.WriteLine(q);
}
var query1 = from g in gradeList
where g.ID.Equals((from f in gradeList select f.ID).Max())
select g;
//按你意思写的
var query2 = (from g in gradeList orderby g._Grade descending select g).First();
//你的修改的
var query1 = from g in gradeList
where g.ID.Equals ((from f in gradeList select gradeList.Max(s => s.ID)).First())
select g;
var query1 = (from g in gradeList orderby g._Grade select g).First();
var query1 = (from g in gradeList orderby g._Grade select g).First();
var query1 = from g in gradeList
where g.ID.Equals(from f in gradeList select gradeList.Max(s => s.ID))
select g;
很正常,没报错。