属性,该属性从同一类内的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中这样做,但不知道是否有可能让全班同学来做这项工作。

您需要选择一个属性进行排序,并将其作为lambda表达式传递给OrderByDescending

类似:

using System.Linq;
    return CourseStatusList.OrderByDescending(s => s.InsertDate)
                           .FirstOrDefault();

另请参阅此链接

LInq Order By和Order By Desc

添加对的引用

using System.Linq;

然后

var maxInsertDate =  CourseStatusList.Max(y => y.InsertDate);
return CourseStatusList.FirstOrDefault(x => x.InsertDate== maxInsertDate);

您可以OrderByDescending然后获得第一项:

return CourseStatusList.OrderByDescending(s => s.InsertDate)
                       .FirstOrDefault();

最新更新