我已经看到这个问题要求数字,但我的布局列包含文本字符串。字符串没有固有的顺序,连接到对象的属性的可能值可以是,例如" apple"," orange"," banana" ,或者" kiwi"。我想要的列查找来自另一个模块的in-links,每个in-link可以为所讨论的属性提供多个值。最终,我希望订购价值"橙","香蕉"," kiwi"," apple"取决于每个链接对象具有的值。例如,如果链接对象包含全部4,那么您将获得完整订单的列表。如果它只有香蕉和苹果,你会返回该列的值" banana" ," kiwi"。对不起,我没有代码示例。此时它只是股票布局列DXL。谢谢你的帮助。
答案 0 :(得分:0)
如果你的真实世界真的和你的例子一样简单,那么只需要if语句的组合就足够了,比如(伪代码)
if linked_values contains "orange"
display "orange\n"
if linked_values contains "banana"
display "banana\n"
你有一个很好的,排序的值列表。
如果没有,您需要真正的排序。 DXL中的排序通常使用跳过列表来完成。当您遍历跳过列表时,您将按排序键的顺序获取值(请注意,键是唯一的,跳过列表中不能有两个具有相同键的对象)。 因此,您的任务是创建一个映射,为每个要存储的条目计算表示正确顺序的密钥和临时跳过列表。
如果我理解你的例子,你会有一个映射
我们假设每个对象可能有多个橙子,并且您想要列出所有这些橙色,因为您不仅要显示水果,还要显示大小或质量等属性。在这种情况下,您将创建如下的排序键:
对象1将对象与值相关联:第一个苹果(大),第二个苹果(小),猕猴桃(中),第三个苹果(大),橙色。这将产生以下跳过列表:
如果你想先用水果排序,然后按大小排序,你用大小编码你的尺码:大,b:中,c:小,d:未定义,你会有像这样的键: