linq的左侧菜单列表

   [HttpPost]
        public ReturnNode GetMenulists(GetMenuListInput input)
        {
            var list = dbContext.yf_menu.AsQueryable<yf_menu>().ToList();
            var newlist = new List<GetMenuListOutput>();
            foreach (yf_menu menu in list)
            {
                GetMenuListOutput newinput = new GetMenuListOutput();
                newinput.createtime = menu.createtime;
                newinput.id = menu.id;
                newinput.menuname = menu.menuname;
                newinput.menuurl = menu.menuurl;
                newinput.note = menu.note;
                newinput.parentid = menu.parentid;
                //newinput.actionList = actionList.Where(u => u.menuid == menu.id).ToList();
                newlist.Add(newinput);
            }
            if (input.outDataType == 1)//树形
            {
                GetMenuListOutput tree = initMenuTree(newlist.Where(u => u.parentid == 0).FirstOrDefault(), newlist);
                return ReturnNode.ReturnSuccess(tree);
            }
            else if (input.outDataType == 2)//数据字典
            {
                return ReturnNode.ReturnSuccess(newlist.ToDictionary(u => u.id));
            }
            else//数组
            {
                return ReturnNode.ReturnSuccess(newlist);
            }
        }


        //生成树
        private GetMenuListOutput initMenuTree(GetMenuListOutput menu, List<GetMenuListOutput> list)
        {
            var chirldens = list.Where(u => u.parentid == menu.id);
            menu.childrens = new List<GetMenuListOutput>();
            foreach (var node in chirldens)
            {
                var newnode = initMenuTree(node, list);
                menu.childrens.Add(newnode);
            }
            return menu;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值