【发布时间】:2015-03-27 17:08:48
【问题描述】:
我有一个未排序的对象列表。这些对象有:
- PreviousId
- 下一个ID
我想对列表进行排序,以便任何前面的项目的“NextId”都等于它后面的“PreviousId”。
例如
Item1:PreviousId = 15,NextId = 16
Item2:PreviousId = 16,NextId = 4
Item3:PreviousId = 4,NextId = 105
Item4:PreviousId = 105,NextId = 40
我能想到一些“杂乱无章”的方法,但是有没有标准的方法来做这样的事情?还是一种特别有效的方法?
【问题讨论】:
-
你必须实现自定义逻辑来处理类似的事情。您必须确保每个前一个都有一个匹配的下一个。另外,你如何处理没有下一项或上一项的开始和结束?
-
这似乎容易导致无法排序的可能性,例如孤儿或循环。