使用LINQ返回嵌套的有序列表

时间:2016-06-15 22:21:49

标签: c# sql-server linq

我有以下对象:

  • 附表
    • 播放列表
    • Media&图形

时间表有很多天,有很多播放列表,播放列表有媒体和图形。

我需要返回一个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();
                }
            }

1 个答案:

答案 0 :(得分:0)

您是否可以控制附表的代码?

如果是这样,为两个项目(具有属性start_time)创建一个公共接口可能会有所帮助,然后使用它来在播放列表中对它们进行排序。

我想这也需要playlist包含这两个项目的列表或可枚举,您可以选择是否需要.Where(x => x.GetType() == Media)之类的媒体或图片,或隐藏在其他一些属性后面,你已经在这里使用media