zoukankan      html  css  js  c++  java
  • .net list转树状结构

    主要的方法

     1        /// <summary>
     2         /// 转化成树结构
     3         /// </summary>
     4         /// <param name="menuList">菜单的平级list</param>
     5         /// <returns></returns>
     6         private List<AbpMenuModel> GetTreeParent(List<AbpMenuDto> menuList)
     7         {
     8             var dic = new Dictionary<long, AbpMenuModel>(menuList.Count);
     9             foreach (var chapter in menuList)
    10             {
    11                 dic.Add(chapter.Id, new AbpMenuModel { Id = chapter.Id, Title = chapter.Title, Path = chapter.Path, ParentId = chapter.ParentId, Icon = chapter.Icon });
    12             }
    13             foreach (var chapter in dic.Values)
    14             {
    15                 if (dic.ContainsKey(chapter.ParentId.Value))
    16                 {
    17                     if (dic[chapter.ParentId.Value].Children == null)
    18                     {
    19                         dic[chapter.ParentId.Value].Children = new List<AbpMenuModel>();
    20 
    21                     }
    22                     dic[chapter.ParentId.Value].Children.Add(chapter);
    23                 }
    24             }
    25             return dic.Values.Where(t => t.ParentId == 0).ToList();
    26         }

    转换前的类

        [AutoMapTo(typeof(AbpMenuDto))]
        public class AbpMenuDto : EntityDto<long>
        {
            /// <summary>
            /// 路径
            /// </summary>
            public string Path { get; set; }
            /// <summary>
            /// 菜单名
            /// </summary>
            public string Title { get; set; }
            /// <summary>
            /// 图标
            /// </summary>
            public string Icon { get; set; }
    
            /// <summary>
            /// 父级ID
            /// </summary>
            public long? ParentId { get; set; }
            /// <summary>
            /// 类型  菜单(menu) 还是  元素(doc)(按钮等)
            /// </summary>
            public string Type { get; set; }
            /// <summary>
            ///  doc时 的父级下唯一代码
            /// </summary>
            public string Code { get; set; }
    
            /// <summary>
            ///  doc时 的名称
            /// </summary>
            public string Name { get; set; }
        }

    转换后的类

     public class AbpMenuModel : EntityDto<long>
        {
            /// <summary>
            /// 路径
            /// </summary>
            public string Path { get; set; }
            /// <summary>
            /// 菜单名
            /// </summary>
            public string Title { get; set; }
            /// <summary>
            /// 图标
            /// </summary>
            public string Icon { get; set; }
    
            /// <summary>
            /// 父级ID
            /// </summary>
            public long? ParentId { get; set; }
            /// <summary>
            /// 类型  菜单(menu) 还是  元素(doc)(按钮等)
            /// </summary>
            public string Type { get; set; }
            /// <summary>
            ///  doc时 的父级下唯一代码
            /// </summary>
            public string Code { get; set; }
    
            /// <summary>
            ///  doc时 的名称
            /// </summary>
            public string Name { get; set; }
    
            public List<AbpMenuModel> Children { get; set; }
  • 相关阅读:
    今天的赢在中国推迟了,给大家推荐个视频,看看什么是真正的中华武术
    赢在中国080312
    盛大(上海)诚聘软件测试人员
    jQuery入门[2]-选择器
    阿里巴巴诚信通成为《赢在中国》的实战项目,要花多少钱?--《赢在中国》(20080408)
    唐僧晒书
    用于生成网页、WAP、JS中文编码的Unicode编码工具
    jQuery入门[5]-AJAX
    中国哲学(一)
    20071212公映的《色即是空2》(sex is zero 2)字幕文件
  • 原文地址:https://www.cnblogs.com/LmuQuan/p/11233684.html
Copyright © 2011-2022 走看看