如何在StringTemplate中创建foreach ?. net



我必须创建这样的语句:

$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,这使得我的建议无效。我还是把答案留下,以防有人觉得有用。