using System.Collections.Generic;
public string Menu { get; set; }
public int Id { get; set; }
public int IdPai { get; set; }
public List<MenusModel> Filhos { get; set; }
public MenusModel(string menu, int id, int idPai = 0){
private string retorno = string.Empty;
MenusModel P1 = new MenusModel("Pai 1",1);
MenusModel P2 = new MenusModel("Pai 2",2);
MenusModel P3 = new MenusModel("Pai 3",3);
MenusModel F1_P1 = new MenusModel("Filho1_P1", 4, 1);
MenusModel F2_P1 = new MenusModel("Filho2_P1", 5, 1);
MenusModel F1_P2 = new MenusModel("Filho1_P2", 6, 2);
MenusModel F2_P2 = new MenusModel("Filho2_P2", 7, 2);
MenusModel F1_P3 = new MenusModel("Filho1_P3", 8, 3);
MenusModel F2_P3 = new MenusModel("Filho1_P3", 9, 3);
MenusModel N1_P1_F1 = new MenusModel("Neto1_P1_F1", 10, 4);
MenusModel N2_P1_F1 = new MenusModel("Neto2_P1_F1", 11, 4);
MenusModel N1_P1_F2 = new MenusModel("Neto1_P1_F2", 10, 5);
MenusModel N2_P1_F2 = new MenusModel("Neto2_P1_F2", 11, 5);
MenusModel B1_P1_F1_N1 = new MenusModel("bisneto1__P1_F2_N1", 12, 10);
MenusModel B2_P1_F1_N1 = new MenusModel("bisneto2__P1_F2_N1", 13, 10);
N1_P1_F1.Filhos = new List<MenusModel>();
N1_P1_F1.Filhos.Add(B1_P1_F1_N1);
N1_P1_F1.Filhos.Add(B2_P1_F1_N1);
F1_P1.Filhos = new List<MenusModel>();
F1_P1.Filhos.Add(N1_P1_F1);
F1_P1.Filhos.Add(N2_P1_F1);
F2_P1.Filhos = new List<MenusModel>();
F2_P1.Filhos.Add(N1_P1_F2);
F2_P1.Filhos.Add(N2_P1_F2);
P1.Filhos = new List<MenusModel>();
P2.Filhos = new List<MenusModel>();
P3.Filhos = new List<MenusModel>();
List<MenusModel> princiPais = new List<MenusModel>();
foreach(MenusModel item in princiPais)
Console.WriteLine(mostraMenusRecursivo(item));
public string mostraMenusRecursivo(MenusModel item)
retorno += "<li>\n\t<a>" + item.Menu + "</a>\n\t";
if(item.Filhos.Count > 0)
foreach(MenusModel subItem in item.Filhos)
if(subItem.Filhos != null)
if(subItem.Filhos.Count > 0)
retorno += "\n\t\t" + mostraMenusRecursivo(subItem);
retorno += "</ul>\n\n\t";