http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5090|回复: 3

[MVC] 如何使用递归进行对以下数据排序??大佬们教教

[复制链接]
发表于 2019-9-3 11:32:59 | 显示全部楼层 |阅读模式
50金钱
json数据:
[
  {

    "mmid": 11,
    "name": "1",   
    "ppid": 0
  },

  {
        "mmid": 1,
        "name": "6",      
        "ppid": 0
    },
  {

  "mmid": 7,
  "name": "2",  
  "ppid": 11
  },
  {
  "mmid": 3,
  "name": "3",
  "ppid": 11
  }
]



通过递归进行排序成以下效果:
[

  {
    "mmid": 11,
    "name": "1",   
    "ppid": 0
  },
           {
                 "mmid": 7,
                "name": "2",  
                "ppid": 11
          },
         {
               "mmid": 3,
              "name": "3",
             "ppid": 11
        }
{
"mmid": 1,
"name": "6",      
"ppid": 0
}  
]






1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2019-9-3 15:39:33 | 显示全部楼层
本帖最后由 clrscr 于 2019-9-3 15:48 编辑

不会,你可以解析为集合,然后排序,然后组件新的集合,也可以达到同样的结果(C论坛貌似有大佬给出了代码)
回复

使用道具 举报

 楼主| 发表于 2019-9-3 15:54:08 | 显示全部楼层
clrscr 发表于 2019-9-3 15:39
不会,你可以解析为集合,然后排序,然后组件新的集合,也可以达到同样的结果(C论坛貌似有大佬给出了代码)

好的  谢谢   
回复

使用道具 举报

发表于 2020-7-27 14:21:55 | 显示全部楼层
var list = BusinessUnitManager.GetBusinessUnits();  // 源数据
            var model = new BusinessUnitTree() { Id = "1", Name = list.FirstOrDefault(x => x.Id == "1").Name };  //根节点
model.Childs = BuildBusinessUnitTree(list, model.Id);

   private static List<BusinessUnitTree> BuildBusinessUnitTree(List<BusinessUnitModel> list, string parentId)
        {
            var tree = new List<BusinessUnitTree>();
            foreach (var item in list.Where(x => x.ParentId == parentId))
            {
                tree.Add(GetChildBusiness(list, new BusinessUnitTree
                {
                    Id = item.Id,
                    Name = item.Name,
                    ParentId = item.ParentId
                }));
            }

            return tree;
        }

        private static BusinessUnitTree GetChildBusiness(List<BusinessUnitModel> list, BusinessUnitTree treeNode)
        {
            //遍历当前节点的所有子节点
            foreach (var item in list.Where(x => x.ParentId == treeNode.Id))
            {
                if (treeNode.Childs == null)
                {
                    treeNode.Childs = new List<BusinessUnitTree>();
                }

                treeNode.Childs.Add(GetChildBusiness(list, new BusinessUnitTree
                {
                    Id = item.Id,
                    Name = item.Name,
                    ParentId = item.ParentId
                }));
            }

            //没有子节点时返回当前节点
            return treeNode;
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 05:27

© 2014-2021

快速回复 返回顶部 返回列表