2010-02-24 43 views
7

Im quan tâm đến việc viết một cái gì đó tương tự như một vòng lặp lồng nhau bằng cách sử dụng công cụ mẫu StringTemplate. Trong C# có một HashTable trong đó mỗi khóa chứa danh sách đối tượng tài liệu, mỗi tài liệu có một tiêu đề và nguồn. Tôi muốn liệt kê việc bắt đầu một email, một bản tóm tắt các tiêu đề tài liệu cho mỗi nguồn.Vòng lặp lồng nhau trong StringTemplate

<h1>Summary</h1> 
<h2>Source A</h2> 
<ul> 
    <li>title 1</li> 
    <li>title 2</li> 
</ul> 
<h2>Source B</h2> 
<ul> 
    <li>title 3</li> 
    <li>title 4</li> 
</ul> 

Cách tốt nhất để thực hiện việc này với StringTemplate là gì?

Trả lời

11

Giả sử bạn đã chuyển đổi các cấu trúc dữ liệu thích hợp - Source lớp có getNamegetDocuments phương pháp, và Document lớp có getTitle phương pháp, nó sẽ giống như thế này:

$ 
sources: 
{ 
    source| 
    <h2>Source $source.name$ </h2> 
    $ 
    source.documents: 
    { 
     document| 
     <li>title $document.title$</li> 
    } 
    $ 
} 
$ 
+0

Đây là câu trả lời hay cho các đối tượng chung, nhưng không ork cho một HashTable. –

+1

Bạn có thể chỉ cho tôi cách thức các đối tượng có thể bắt đầu và tài liệu của bạn trông như thế nào không? Với hashtable, bạn có thể sử dụng cú pháp 'ht.keys: {k | something}'. – viaclectic

Các vấn đề liên quan