0

我有一个 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 中这样做,但想知道是否可以让班级完成这项工作。

4

3 回答 3

1

然后你可以OrderByDescending得到第一个项目:

return CourseStatusList.OrderByDescending(s => s.InsertDate)
                       .FirstOrDefault();
于 2013-08-29T04:01:19.417 回答
1

添加参考

using System.Linq;

然后

var maxInsertDate =  CourseStatusList.Max(y => y.InsertDate);
return CourseStatusList.FirstOrDefault(x => x.InsertDate== maxInsertDate);
于 2013-08-29T04:02:57.507 回答
1

您需要选择要排序的属性并将其作为 lambda 表达式传递给 OrderByDescending

喜欢:

using System.Linq;

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

也参考这个链接

LInq Order By 和 Order By Desc

于 2013-08-29T04:05:10.023 回答