C#递归计算树形菜单

1 先获取1级菜单集合

 

/// <summary>
/// 获取菜单列表
/// </summary>
/// <returns></returns>
public List<MenuInfo> GetMenuList()
{
List<MenuInfo> departments = new List<MenuExt>();
List<MenuInfoExt> menuinfoses =
_menuinfoRepository.Queryable().OrderBy("MenuId").Select(p => new MenuInfoExt()
{
ParentMenuId=p.ParentMenuId,
MenuId = p.MenuId,
Name = p.Name
}).ToList();
foreach (var item in menuinfoses)
{
if (item.ParentMenuId == 0)
{
MenuInfodepartment = new MenuInfo();
department.id = item.MenuId;
department.text = item.Name;
department.children = AddChildNode(menuinfoses, item.MenuId);
departments.Add(department);
}

}
return departments;

}

 

 

private List<MenuInfo> AddChildNode(List<MenuInfoExt> list, long departmentId)
{
List<MenuInfo> departments = new List<MenuInfo>();

foreach (var item in list.Where(p => p.ParentMenuId == departmentId))
{
MenuInfodepartment = new MenuInfo();
department.id = item.MenuId;
department.text = item.Name;
department.children = AddChildNode(list, item.MenuId);
departments.Add(department);
}
return departments;
}

转载于:https://www.cnblogs.com/dyc-zlj/p/10668283.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值