我有一个Order
类,它由许多属性组成,其中之一是Course
。 Course
对象包含一列MeetingDays
。 每个MeetingDay
对象包含许多属性,其中之一是StartDate
。c#LINQ按属性的子属性对列表进行排序,属性是对象列表
现在我想排序(OrderBy
)订单列表,订购它的StartDate
属性MeetingDay
。
由于一个订单可以有多个MeetingDays
:我也有一个日期,我只想按每个等于日期参数的订单排序MeetingDay
。
所以,如果一个订单在上午10点开始,并在下午2点结束,我希望它在我的列表中订购,另一个订单在下午3点开始,并在下午6点结束。
编辑
这将是很好,如果这样的事情是可能的:
var sortedOrders = orders.OrderBy(x => x.Course.MeetingDays.StartDate.Date == date.Date).ToList();
从你的描述猜测,会是这样的工作? 'myOrders.OrderBy(order => order.Course.MeetingDays.First()。StartDate)'? –
我更新了我的问题,因为课程可以包含多个MeetingDays,但我只想对MeetingDate进行排序,其中MeetingDate.StartDate等于日期参数。 – WulfgarDK
听起来像'myOrders.OrderBy(order => order.Course.MeetingDays.First(day => day.StartDate.Date == date.Date).StartDate)'。 'myOrders' **中的每个'order'都保证**包含'DateDay'与Date.Date具有相同的'Date'?如果不是,你想过滤这些命令吗? – olydis