我有一个List<>保存记录的状态历史记录。我想要包含一个属性,该属性将从该列表中返回最新状态。
问题是从类中访问List时,.OrderByDescending等扩展名不可用。
以下是一个例子:
public class Course
{
public int CourseID { get; set; }
public string Title { get; set; }
public virtual List<CourseStatus> CourseStatusList { get; set; }
public CourseStatus Current
{
get
{
//Return a single CourseStatus object from
//CourseStatusList with max(InsertDate)
}
}
}
public class CourseStatus
{
public int StatusID { get; set; }
public DateTime InsertDate { get; set; }
public string Description { get; set; }
public virtual Course Course { get; set; }
}
我通常在我的DAL中这样做,但想知道是否可以让班级做这项工作。
答案 0 :(得分:1)
您可以OrderByDescending
获得第一项:
return CourseStatusList.OrderByDescending(s => s.InsertDate)
.FirstOrDefault();
答案 1 :(得分:1)
添加对
的引用using System.Linq;
然后
var maxInsertDate = CourseStatusList.Max(y => y.InsertDate);
return CourseStatusList.FirstOrDefault(x => x.InsertDate== maxInsertDate);
答案 2 :(得分:1)
您需要选择要排序的属性并将其作为lambda表达式传递给OrderByDescending
像:
using System.Linq;
return CourseStatusList.OrderByDescending(s => s.InsertDate)
.FirstOrDefault();
也可以参考此链接