【发布时间】:2010-04-28 07:48:17
【问题描述】:
我想将多个项目列表合并到一个列表中,同时保留整体订单要求。即:
1: A C E
2: D E
3: B A D
result: B A C D E
上面,从列表 1 开始,我们有 ACE,然后我们知道 D 必须在 E 之前,从列表 3 中,我们知道 B 必须在 A 之前,D 必须在 B 和 A 之后。
如果有冲突的顺序,应该使用第一个顺序。即
1: A C E
2: B D E
3: F D B
result: A C F B D E
3 与 2 冲突(B D 与 D B),因此将使用 2 的要求。
如果订购要求意味着一件物品必须排在另一件之前或之后,那么只要保持整体顺序,它是紧挨在之前还是之后,或者在列表的开头或结尾都没有关系。
这是使用 VB.Net 开发的,因此 LINQy 解决方案(或任何 .Net 解决方案)会很好 - 否则方法的指针会很好。
编辑:编辑以使示例 2 有意义(最后一分钟的更改使其无效)
【问题讨论】:
-
为什么第二个例子中的排序有冲突?在我看来
A C B F D E满足所有订单...