c# - 将 [0] 或 First() 与 LINQ OrderBy 一起使用

标签 c# .net linq-to-sql .net-3.5 sql-order-by

如果我有这样的结构

 Albums
    - Album
        - Discs
            - Tracks

我想按第一张光盘上第一首轨道的标题来订购一组专辑。

是否有类似于以下我可以做的事情(记住我需要使用接受字符串的 OrderBy 扩展方法)?

albums.OrderBy("Discs[0].Tracks[0].Title")

我需要能够使用字符串表达式进行排序,因此需要使用 OrderBy 方法,即 albums.OrderBy("Track[0].Title")。这样做的原因是我们的自定义框架使用从 GridView 传回的排序表达式(例如“Title”),它在字典中查找(例如“Track[0].Title”)以获得正确的子句顺序。也就是说,排序的字段和方向是在运行时动态确定的。

albums.OrderBy("Discs.First().Tracks.First().Title")

最佳答案

未经测试,但怎么样:

    var query = from album in albums
                let disc = album.Discs.First()
                let track = disc.Tracks.First()
                orderby track.Title
                select album;

关于c# - 将 [0] 或 First() 与 LINQ OrderBy 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604729/

相关文章:

c# - LINQ左外连接查询错误: OuterApply did not have the appropriate keys

c# - SqlConnectionStringBuilder 类在 dotnetcore 中缺少 Authentication 属性

c# - 如何创建数据表并传入信息?

c# - MSIL代码调查

html - 显示设置使图像占据整行 div

c# - 与 Linq To Sql 和 ASP.NET 的并发

c# - 根据持续时间将对象从一个点移动到另一个点

c# - gridView.DataSource as DataTable 在 asp.net 中设置为空

javascript - .NET JSON.decode() 对于大型数组失败

c# - 返回包含 2 个子类的 IQueryable