c# 树形递归
public class Menu {
public string Name { get; set; }
public string Code { get; set; }
public string ParentCode { get; set; }
public List<Menu> list { get; set; }
}
public List<Menu> GetList(List<Menu> list,string parentCode) {
List<Menu> listMenu = new List<Menu>();
var listNew = list.Where(n => n.ParentCode == parentCode);
if (listNew != null && listNew.Count() > 0)
{
foreach (var item in listNew)
{
List<Menu> listChild = GetList(list, item.Code);
if (listChild!=null&&list.Count()>0) {
Menu menu = new Menu();
menu.Name = item.Name;
menu.Code = item.Code;
menu.ParentCode = item.ParentCode;
menu.list = GetList(list, item.Code);
listMenu.Add(menu);
}
else {
Menu menu = new Menu();
menu.Name = item.Name;
menu.Code = item.Code;
menu.ParentCode = item.ParentCode;
listMenu.Add(menu);
}
}
}
else {
return null;
}
return listMenu;
}
[HttpGet]
public IActionResult Get()
{
List<Menu> list = new List<Menu>()
{
new Menu(){
Name="菜单1",
Code="100",
ParentCode=""
},
new Menu(){
Name="菜单2",
Code="101",
ParentCode=""
},
new Menu(){
Name="菜单1-菜单1",
Code="100001",
ParentCode="100"
},
new Menu(){
Name="菜单1-菜单1-菜单1",
Code="100001001",
ParentCode="100001"
},
new Menu(){
Name="菜单1-菜单2",
Code="100002",
ParentCode="100"
}
,
new Menu(){
Name="菜单1-菜单3",
Code="100003",
ParentCode="100"
}
};
List<Menu> list1 = GetList(list,"");
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步