Создайте мап такого типа:
X++:
new Map(Types::container, Types::container);
а ключ формируйте таким образом:
или вообще что хотите.
Вся прелесть в том, что Вам нет необходимости знать, сколько полей упаковано в контейнер, до начала обработки. А во время обработки Вы можете в зависимости от TableId из ключа вызвать нужный обработчик