재귀를 사용하여 다음 HTML 순서없는 목록을 출력 할 수 있습니까? 원래의 데이터가 페이지가 여기에C# 재귀를 사용하여 목록에서 HTML 순서없는 목록 만들기
public class Page
{
public int Id { get; set; }
public int pageId { get; set; }
public int parentPageId { get; set; }
}
인 다음 목록
List<Page> pages = new List<Page>();
pages.Add(new Page { Id = 1, pageId = 1, parentPageId = 0 });
pages.Add(new Page { Id = 2, pageId = 2, parentPageId = 0 });
pages.Add(new Page { Id = 3, pageId = 3, parentPageId = 0 });
pages.Add(new Page { Id = 4, pageId = 4, parentPageId = 0 });
pages.Add(new Page { Id = 5, pageId = 5, parentPageId = 1 });
pages.Add(new Page { Id = 6, pageId = 6, parentPageId = 1 });
pages.Add(new Page { Id = 7, pageId = 7, parentPageId = 0 });
pages.Add(new Page { Id = 8, pageId = 8, parentPageId = 5 });
pages.Add(new Page { Id = 9, pageId = 9, parentPageId = 5 });
에서 개최되는
<ul>
<li>1
<ul>
<li>5
<ul>
<li>8</li>
<li>9</li>
</ul>
</li>
<li>6</li>
</ul>
</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>7</li>
</ul>
는 지금까지 물론 완벽하게 작동하지 않는 무슨이다. ..
foreach (var page in pages)
{
Console.WriteLine("<ul><li>{0}", page.pageId);
WriteMenu(pages, page.pageId, page.parentPageId);
}
public static void WriteMenu(List<Page> pages, int pageId, int parentPageId)
{
foreach (var page in pages)
{
if (page.parentPageId == pageId)
{
Console.WriteLine("<ul><li>{0}", page.pageId);
WriteMenu(pages, page.pageId, page.parentPageId);
}
}
}
거의가 그 ... -2,3,4,7- 부분 내 예와 같지 않다. –
@Nicholas : 좋아요, 편집했습니다 - 당신의 예제가 어떤 이유로 든 6 번 항목을 제외하고는 * 정확하게 * 보이는 것처럼 보입니다.) –
우수, 고맙습니다. Hexakosioihexekontahexaphobia 한판 승부가있었습니다 ... 죄송합니다! –