我必须创建这样的语句:
$foreach item in p.Beneficiaries$
BeneName $ai.Beneficiaries.IndexOf(item) + 1$ : item.Name
$end$
我该怎么做才能让它起作用?
StringTemplate为您提供了迭代中的$i$和$i0$函数,它们允许您从1或0开始查看当前索引。使用基于1的索引函数$i$,您可以这样做:
Beneficiaries(p) ::= <<
$p.beneficiaries:{item | BeneName $i$ : $item.name$}; separator="n"$
>>
生成以下输出:
BeneName 1 : Bob
BeneName 2 : Helen
BeneName 3 : Dave
编辑
只是注意到你在不同的集合上调用IndexOf,这使得我的建议无效。我还是把答案留下,以防有人觉得有用。