• 编写一个通用递归获取树形结构对象集合的方法


            /// <summary>
            /// 通用递归获取树状子节点信息
            /// </summary>
            /// <param name="item"></param>
            /// <param name="id"></param>
            /// <returns></returns>
            private List<T> getTreeListByPid<T, F>(List<F> item, long pid, F d) where T : BaseTreeDto<T>, new() where F : BaseTreeDic, new()
            {
                List<T> ItemsDto = new List<T>();
                //限制条件跳出
                if (item.Where(s => s.Pid == pid).Count() > 0)
                {
                    item.Where(s => s.Pid == pid).ToList().ForEach(f =>
                    {
                        ItemsDto.Add(new T { Id = f.Id, Name = f.Name, Item = getTreeListByPid<T, F>(item, f.Id, f) });
                    });
                }
                return ItemsDto;
            }
        public class BaseTreeDto<T>
        {
            public long Id { get; set; }
            public string Name { get; set; }
            public List<T> Item { get; set; }
        }
    
        public class BaseTreeDic
        {
            public long Id { get; set; }
            public string Name { get; set; }
            public string Code { get; set; }
            public long Pid { get; set; }
        }

     调用方式 将头节点筛选出来然后传参进入方法即可(以下是伪代码)

               
    List<T> list = new List<T>(); List<F> item = GetListF(); List<F> tempAllitem = item.Where(i => i.Pid == 0).ToList(); tempAllitem.ForEach(i => { list.Add(new T{ Id = i.Id, Name = i.Name, Item = getTreeListByPid<T, F>(item, i.Id, i) }); });
  • 相关阅读:
    [破解] nasca drm file -ver1.00
    [KEY] DK NOTES
    [Java] Tomcat环境变量设置
    [Java] Java record
    [SQL] SQL Server 触发器
    [GitHub] GitHub Repositories
    [GitHub] GitHub使用教程for Eclipse
    [SharePoint] SharePoint 错误集 3
    [SharePoint] SharePoint 错误集 2
    [SharePoint] SharePoint 错误集 1
  • 原文地址:https://www.cnblogs.com/zzlblog/p/10014907.html
Copyright © 2020-2023  润新知