【发布时间】:2019-12-13 09:43:14
【问题描述】:
我有一个看起来像这样的对象:
public class MyObj
{
public string Title { get; set; }
public IEnumerable<Section> Sections { get; set; }
}
public class Section
{
public string Title { get; set; }
public IEnumerable<Item> Items { get; set; }
public int SortOrder { get; set; }
}
public class Item
{
public string Title { get; set; }
public int SortOrder { get; set; }
}
基本上,我最终得到一个 IEnumerable 部分,而这些部分又包含一个 IEnumerable 项目。部分列表和项目都需要按其各自的 SortOrder 属性进行排序。
我知道我可以通过 obj.Sections.OrderBy(s => s.SortOrder) 对部分进行排序,但是我也不知道如何对每个部分中的项目进行排序。
上下文是我正在编写一个 Sort 函数,它接受一个未排序的 MyObj 并返回一个同时包含已排序的部分和项目。
public MyObj Sort(MyObj unsortedObj)
{
var sortedObj = unsortedObj.....
return sortedObj;
}
预期的数据结构是这样的:
- Section1
- Item1
- Item2
- Section2
- Item1
- Item2
【问题讨论】:
-
obj.Sections.OrderBy(s => s.SortOrder)不会排序Sections它将返回新的IOrderedEnumerable -
这里的预期结果是什么?您希望
Items在每个Section中排序还是对所有MyObj排序? -
@PavelAnikhouski 更新为预期排序
-
我们不能先对section中的所有item进行排序,然后再对section本身进行排序吗? @SamWalpole