我有以下对象:
时间表有很多天,有很多播放列表,播放列表有媒体和图形。
我需要返回一个Schedule对象,其中Media和Graphics嵌套对象按其开始日期参数排序。
要访问计划中的媒体列表,请使用:
device.schedule.days.SelectMany(d => d.playlists).SelectMany(p => p.media).OrderBy(m => m.start_time);
如何正确地使用订购的媒体和图形返回计划? (媒体和图形都嵌套在播放列表对象下。
感谢。
使用以下解决方法(如果有更好的方法,请高度赞赏分享): var schedule = device.schedule;
foreach (var day in schedule.days)
{
foreach (var playlist in day.playlists)
{
var media = playlist.media;
playlist.media = media.OrderBy(m => m.start_time).ToList();
var graphics = playlist.graphics;
playlist.graphics = graphics.OrderBy(g => g.start_time).ToList();
}
}
答案 0 :(得分:0)
您是否可以控制附表的代码?
如果是这样,为两个项目(具有属性start_time
)创建一个公共接口可能会有所帮助,然后使用它来在播放列表中对它们进行排序。
我想这也需要playlist
包含这两个项目的列表或可枚举,您可以选择是否需要.Where(x => x.GetType() == Media)
之类的媒体或图片,或隐藏在其他一些属性后面,你已经在这里使用media
。