我有一个具有Date属性和Z属性的Object。
class myClass
{
DateTime theDate;
int Z =0;
}
我根据SQL查询创建这些对象的列表 然后我需要选择特定日期的最大Z值。
public int GetMaxZ(List<myClass> myClasses, DateTime date)
{
int z=0;
z = select Z from c in myClasses
where c.theDate=date
//Select the Max somehow
return z;
}
显然,代码不允许选择特定日期的最高Z
我曾想过选择所有相同的日期,然后迭代这些,但这听起来不像是一个可靠的练习。有什么帮助吗?
答案 0 :(得分:2)
myClasses.Where(x => x.theDate == date)
.Select(x => x.Z)
.OrderByDescending(x => x)
.FirstOrDefault();
答案 1 :(得分:1)
首先,该代码甚至没有编译,因为select是IQueryable,但你尝试使用int。
但是,为了你的运气,因为它是一个IQueryable你可以使用Max():
public int GetMaxZ(List<myClass> myClasses, DateTime date)
{
var z = from c in myClasses
where c.theDate=date
select Z;
return z.Max();
}