c# - 如何在 LINQ 表达式中对多个级别进行排序?

标签 c# linq

我有以下 LINQ 表达式:

public IList<Objective> GetObjectives(int examId)
    {
        var objectives = _objectivesRepository
            .GetAll()
            .Where(o => o.ExamId == examId || examId == 0)
            .Include(o => o.ObjectiveDetails)
            .ToList();
        return objectives;
    }

public partial class Objective
{
    public int ObjectiveId { get; set; }
    public int ExamId { get; set; }
    public int Number { get; set; }
    public virtual ICollection<ObjectiveDetail> ObjectiveDetails { get; set; }
}

public partial class ObjectiveDetail
{
    public int ObjectiveDetailId { get; set; }
    public int ObjectiveId { get; set; }
    public int Number { get; set; }
    public string Text { get; set; }
}

如何修改此表达式,以便按 Number 的顺序返回 Objective,并按 Number 的顺序返回 ObjectiveDetails?

最佳答案

public IList<Objective> GetObjectives(int examId)
    {
        var objectives = _objectivesRepository
            .GetAll()
            .Where(o => o.ExamId == examId || examId == 0)
            .Include(o => o.ObjectiveDetails.OrderBy(d => d.Number))
            .OrderBy(o => o.Number);
            .ToList();
        return objectives;
    }

关于c# - 如何在 LINQ 表达式中对多个级别进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19766369/

相关文章:

LINQ Group By 到字典对象中

c# - 如何在 WPF 中使用 GDI+?

c# - 在 C# 中查看返回值

c# - EF - 处理多个多对多映射的正确方法

c# - Expression.Body.Expressions——如何使用它?

c# - 如何在 LINQ 中对列表数组进行分组

c# - 无法通过 Microsoft.Graph 访问已删除项目

c# - 当控件的顶级父窗口是事件窗口时设置焦点?

c# - 如何创建 .rdlc 文件?

c# - 使用 Linq 从与另一个子列表匹配的子列表中删除项目