LINQ OrderBy具有多个层

时间:2014-07-15 12:21:07

标签: c# linq

假设我有这样一个类:

public class TestParent
{
    public string ParentID { get; set; }
    public List<TestGroup> GroupItems { get; set; }
}

public class TestGroup
{
    public string GroupID { get; set; }
}

如何按ParentID排序TestParent类型的对象,又按GroupID对其中的所有TestGroup进行排序?

我可以用这段代码完成:

for (int i = 0; i < ResponseArray.Count; i++ )
{
    ResponseArray[i].GroupItems = ResponseArray[i].GroupItems
                                                  .OrderBy(x => x.GroupID)
                                                  .ToList();
}
return ResponseArray.OrderBy(x => x.GroupID).ToList();

只使用LINQ可以实现相同的目的吗?

1 个答案:

答案 0 :(得分:0)

您可以在OrderBy之后使用Select并在其中订购GroupItem:

ResponseArray.OrderBy(t => t.ParentID).Select(t => new TestParent()
    { 
        ParentID = t.ParentID,
        GroupItems = t.GroupItems.OrderBy(g => g.GroupID).ToList() 
    })