У меня есть кортеж с именем blockType
tuple blockType {
key string id;
int i;
int j;
int k;
};
{blockType} PitBlocksType =…; \\read from excel
Снимок данных выглядит примерно так:
P1 1 1 2
P2 1 1 3
P3 1 1 4
P4 1 1 5
P5 1 1 6
P6 1 1 7
P7 1 1 8
P8 1 1 9
P9 1 1 10
P10 1 1 11
И еще один кортеж
tuple Path {
int id;
string source;
string dest;
{string} pitblockSet;
{string} roadPoints; // not used
{string} dumpblockSet;
{string} others;
float dist;
};
{Path} Pbd читается из Excel, и данные выглядят следующим образом:
PathId Source Destination pitBlockSet Road DumpBlockSet Others Distance
1 P1 D1 P1 R8 D45 D42 D39 D14 D1 581.3956
2 P1 D1 P1 R8 D40 D14 D1 587.1185
3 P1 D1 P1 R8 D43 D16 D2 D1 588.7774
4 P2 D1 P2 P44 R8 D45 D42 D39 D14 D1 539.7307
В этом случае мой особый интерес связан с pitBlockSet, который просто содержит идентификатор blockType, он может иметь один или несколько идентификаторов типа P1, P23 и т. Д. c. Мне нужно создать набор, который имеет тип {blockType}, и имеет идентификаторы из pitBlockSet пути и остальную часть из pitBlocksType. Так что это объединение Path.pitBlockSet и PitBlocksType.
Я попробовал следующие варианты:
{blockType} PitBlocksInPath[p in Pbd] = union(b in p.pitblockSet) PitBlocksType [<b>];
Я получаю следующие ошибки:
Not an array type
Is это синтаксическая ошибка или не должно быть union