0

我有一个 C# Dictionary<string, Dictionary<string, object>>,我正在尝试使用 nVelocity 模板显示数据,并且我正在尝试使用索引获取字典的键。我是新手。

请帮助我了解如何使用索引访问键,例如我想访问 0 索引处的键以及如何通过迭代显示数据以及我们如何在 foreach 循环中放置“break”语句?

    <table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tbody>
        <tr class="HeaderOne">
            <td align="left">Class</td>

            #foreach($services in $VolumeSummary)
                #foreach($item in $VolumeSummary[$services])
                    <td class="numeric-th">$item.AverageUnitPriceF</td>
                #end
                #break
            #end
            <td class="numeric-th">Average Price</td>
            <td class="numeric-th">Total</td>
        </tr>

        #foreach ($item in $TotalsByServiceAndTermYear)
        <tr style="color:#333;font-weight:normal;">
            <td>$item.Service</td>
            <td class="numeric-td">
                $!item.Year
            </td>
            <td class="numeric-td">
                $!item.AverageUnitPriceF
            </td>
            <td class="numeric-td">
                $!item.TotalPriceF
            </td>
        </tr>
        #end
    </tbody>
</table>
4

1 回答 1

1

NVelocity 只是位于 .NET 对象之上,因此您无法从字典中按索引获取项目,但您可以使用$dict.get_Item("key")按键获取项目,这是索引器的语法,因为这是项目索引器的底层 CLR 方法.

正如其他人提到的 aDictionary具有不确定的排序顺序,请考虑使用 a SortedDictionary

#foreach您可以使用#break指令打破 a ,就像您的示例一样。它是在我们发布 v1.1.1 后于 2011 年实施的,因此您必须从主构建或从我们的构建服务器获取主构建,否则您可以通过使用条件隐藏内容来解决它。

#foreach($item in $dict)
  $item.Key
  #break
#end

#foreach($item in $dict)
  #if($velocityCount == 1)
    $item.Key
  #end
#end
于 2016-11-30T15:58:43.790 回答