使用Linq.Min()获取Min Date

本文关键字:Min 获取 Date Linq 使用 | 更新日期: 2023-09-27 18:00:14

我正试图从集合中获取最小日期

someCollection.Min(d => d.Dates.Select(c => c.ReservationDateStart)).FirstOrDefault();

但它返回异常

至少有一个对象必须实现IComparable

基于此,我得出了Min不起作用的结论,但我们如何根据Min的属性集合从集合中获得Min对象?

我的收藏品有点像

public class InfoDatesViewModel
    {
        public DateTime OccureFrom { get; set; }
        public DateTime OccureTo { get; set; }
        public string RecurreFrom { get; set; }
        public string RecurreTo { get; set; }
        public int RecurrentType { get; set; }
        public bool IsFullDay { get; set; }
        public int ReservedQuantity { get; set; }
        public ReservedDateViewModel[] Dates { get; set; }
    }

CCD_ 1为

public class ReservedDateViewModel
    {
        public bool IsAvailable { get; set; }
        public DateTime ReservationDate { get; set; }
        public DateTime ReservationDateEnd { get; set; }
        public DateTime ReservationDateStart { get; set; }
    }

使用Linq.Min()获取Min Date

问题是InfoDatesViewModel.Dates是一个集合,所以不能直接比较。

当有一个集合集合时,可以使用SelectMany运算符将它们展平:

someCollection.SelectMany(c => c.Dates).Min(d => d.ReservationDateStart);