zoukankan      html  css  js  c++  java
  • 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,"");

  • 相关阅读:
    2019年11月4日随堂测试 最多输入字母统计
    写增删改查中间遇到的问题
    2019年12月9日下午自习成果
    2019年12月16日 分级考试
    2019年11月18日 JAVA期中考试 增删改查
    sql语言积累
    【转载】Java项目中常用的异常处理情况总结
    泛型
    C#数字格式化输出
    委托,Lambda的几种用法
  • 原文地址:https://www.cnblogs.com/zhang-wenbin/p/14873977.html
Copyright © 2011-2022 走看看