【发布时间】:2011-03-01 23:22:17
【问题描述】:
拿这两个列表:
列表 1
红色 绿色的 蓝色
清单 2
棕色 红色的 蓝色 紫色的 橙色
我正在寻找一种方法将这些列表组合在一起以生成:
清单 3
棕色 红色的 绿色的 蓝色 紫色的 橙色
我认为基本规则如下:
1) 将落在第一个公共行之前的任何行插入到列表顶部(例如,布朗位于第一个公共行之前,红色);
2) 如果两个列表都有两个项目,则在行之间插入项目(例如,列表 1 在红色和蓝色之间插入绿色);和
3) 如果在 2 中没有找到“中间性”,则在底部插入行(例如,列表 2 在底部插入橙色)。
列表存储在 DataTable 中。我猜我必须在迭代时在它们之间切换,但我很难找出组合这些行的方法。
感谢您的帮助。
--布伦特
【问题讨论】:
-
订单有那么大的区别吗?直接走到路口不是更简单吗?
-
@Thomas,我理解这意味着排序是考虑到 3 点的重要部分。否则,正如您所展示的那样,它相当简单。
-
@SnOrfus - 如果排序很重要,那么有很多关于处理边缘情况的问题,我在帖子中提到过。
-
@Thomas,同意,我不相信我的实现会涵盖这些情况。来自 OP 的信息会很好。 (顺便说一句,现在读它,我可能会觉得它听起来像一个 dbag;我并没有尝试)
-
@Thomas:是的,顺序很重要。如果有帮助,我会尝试逐个季度匹配 XBRL 财务报表中的行项目,然后将结果输出到电子表格中。例如,如果在第一季度,申报者没有打破总收入的“销售”数字,但在第二季度这样做,我需要足够的聪明才能在收入之前添加一条销售线,但在任何项目之后可能会出现在第一季度提交的总收入之前。我认为,处理边缘情况会有点随机,只要随机性是“一致的”,客户应该可以接受。