2016-11-30 2 views
0

사전 < 문자열, 사전 < 문자열, 개체 >> 및 nVelocity 템플릿을 사용하여 데이터를 표시하려고합니다. 인덱스가있는 사전의 키를 가져 오려고합니다. 나는 초보자이다.NVELocity의 사전 <string, Dictionary <string, object >>

색인이있는 키에 액세스하는 방법을 알려주세요. 예 : 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> 
+0

NVelocity에 대한 단서가 없지만 '사전'은 주문되지 않으므로 첫 번째 키를 얻기 위해 액세스 할 수있는 실제 색인이 없습니다. – HimBromBeere

+0

우리는 모든 키를 얻은 다음 C# –

+1

에서 첫 번째 인덱싱 된 키를 얻을 수 있습니다. 그러나 이것은 결정적이지 않습니다. 특히 더 새로운 .NET 버전에서 변경 될 수 있습니다. – HimBromBeere

답변

0

당신이 사전에서 색인으로 아이템을 얻을 수 있지만, 당신이이 같은 인덱서에 대한 구문은 키를 기준으로 항목을 얻을 수 $dict.get_Item("key")을 사용할 수 있도록 NVelocity 그냥 .NET 객체 위에 표시 항목 인덱서에 대한 기본 CLR 메서드입니다.

다른 사람들은 Dictionary에 비 결정적 정렬 순서가 있다고 언급 했으므로 SortedDictionary을 사용해보십시오.

예제와 같이 #break 지시어를 사용하여 #foreach에서 깨질 수 있습니다. v1.1.1을 릴리스 한 후 2011 년에 구현되었으므로 마스터에서 빌드하거나 빌드 서버에서 마스터 빌드를 가져와야합니다. 그렇지 않으면 조건을 사용하여 내용을 숨길 수 있습니다.

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

#foreach($item in $dict) 
    #if($velocityCount == 1) 
    $item.Key 
    #end 
#end 
+0

# 브레이크가 작동하지 않습니다 ... 그대로 표시됩니다 ... 어떤 이유가 있습니까? –

+0

@MuhammadZaib 버전 번호에 대한 내 의견을 읽었습니까? –

+0

예 조나단 .. 대단히 감사합니다. 내 쿼리를 해결할 수있었습니다 ... –

관련 문제