【发布时间】:2012-11-10 09:16:55
【问题描述】:
我有一个模板,它在不同的地方使用相同的多值属性。我经常发现自己处于这样一种情况,即我想在将模板应用于单个值之前过滤属性。
我可以这样做:
<#col:{c|<if(cond)><# c.Attribute2 #><endif>};separator=\",\"#>
但这不是我想要的,因为输出中有分隔“跳过”条目的分隔符,例如:
2,4,,,6,,4,5,,
我可以修改成
<#col:{c|<if(c.Attribute1)><# c.Attribute2 #>,<endif>};separator=\"\"#>
这几乎没问题,但我在最后一个数字之后得到了一个额外的分隔符,这有时并不重要(通常当分隔符是空格时),但有时会:
2,4,6,4,5,
我有时会这样做:
<#first(col):{c|<if(cond)><# c.Attribute2 #><endif>};separator=\"\"#>
<#rest(col):{c|<if(cond)>,<# c.Attribute2 #><endif>};separator=\"\"#>
但是如果第一个成员不满足条件,这种方法就失败了,那么开头就有一个额外的分隔符:
,2,4,6,4,5
谁能给我一个更好的解决方案?
【问题讨论】:
-
这是 v3 吗?嗯...也许在 v3 中它并没有使“空”迭代值消失。
-
我使用的是 .NET 版本 4.0.6.9004
标签: collections filtering stringtemplate