对象属性

 public class ResList
{
public int ID { get; set; }
public List<ResList> Child { get; set; } = null;
public int Parent { get; set; }
public int Rank { get; set; }
}
 

  数据就是那种有父级ID的那种

             List<ResList> reslist = new List<ResList>();//新的数据
List<ResList> alllist = new List<ResList>();//原始数据
//加载原始数据
for (int i = ; i < ; i++)
{
int j = ;
while (Math.Pow(, j) <= i)
{
j++;
} alllist.Add(new ResList() { ID = i, Parent = i / , Rank = j });
}
//加载原始数据完成 //下面是处理方法
Dictionary<int, ResList> dic = new Dictionary<int, ResList>(); foreach (ResList res in alllist)
{
dic.Add(res.ID, res); }
foreach (ResList res in dic.Values)
{
if (dic.ContainsKey(res.Parent))
{
if (dic[res.Parent].Child == null)
{
dic[res.Parent].Child = new List<ResList>();
}
dic[res.Parent].Child.Add(res);
}
}
//得到最终的数据List
reslist = dic.Values.Where(t => t.Parent == ).ToList();
 

  该方法来源  https://blog.csdn.net/u010162297/article/details/53019101

C# 不用递归,获取无限层级数据的更多相关文章

  1. TreeView递归绑定无限分类数据

    TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name N ...

  2. php不用递归完成无限分类,从表设计入手完整演示过程

    无限分类是什么就不废话了,可以用递归实现,但是递归从数据库取东西用递归效率偏低,如果从表设计入手,就很容易做到网站导航的实现,下面是某论坛导航,如下图 网上无限分类大多不全面,今天我会从设计表开始, ...

  3. Mysql 递归获取多重数组数据

    多重数据 $data ,获取顶级下的所有下级id $data array:3 [▼ 0 => array:7 [▼ "id" => 1 "created_at ...

  4. php递归获取无限分类菜单

    从数据库获取所有菜单信息,需要根据id,pid字段获取主菜单及其子菜单,以及子菜单下的子菜单,可以通过函数递归来实现. <?php class Menu { public $menu = arr ...

  5. c#通用递归生成无限层级树

    NewsType结构: Id ParentId Name children(List<NewsType>) public void LoopToAppendChildren(List< ...

  6. 【吐血分享】SQL Server With As 递归获取层级关系数据

    纯洁的一周又开始了,今天看到一则新闻,笑尿了,和袁友们一起娱乐下 最近两月在做基于Saas模式的人力资源管理产品,平常数据库设计我经常会遇到如下需求场景: 以前商城类网站在设计类型表的时候,设计成单表 ...

  7. 【MySQL】MySQL层级数据的递归遍历

    层级的业务数据在系统中很常见,如组织机构.商品品类等. 如果要获取层级数据的全路径,除了缓存起来,就是递归访问的方式了: 将层级数据缓存在redis中,用redis递归获取层级结构.此方法效率高. 在 ...

  8. Php无限层级并显示层级数

    今天在处理递归无限层级菜单时,遇到一个稍微烧脑的问题,如何显示当前节点所在的层级数.废话不多说,我们先看个直观的无限层级: <?php // 这里的arr是直接从数据库取出的,仅作为测试数据 $ ...

  9. js treeData 树形数据结构 无限层级(转载)

    js实现无限层级树形数据结构(创新算法) 转载:https://blog.csdn.net/Mr_JavaScript/article/details/82817177 由于做项目的需要,把一个线性数 ...

随机推荐

  1. Jquery Live方法

    $("button").live("click",function(){ $("p").slideToggle();}); ive() 方法 ...

  2. Error: Cannot fit requested classes in a single dex file (# methods: 149346 > 65536)

    引用第三方库的jar文件,都有可能会触发这个错误.解决方案如下: 参考<[Android]Cannot fit requested classes in a single dex file. T ...

  3. ldap配置系列三:grafana集成ldap

    ldap配置系列三:grafana集成ldap grafana的简介 grafana是一个类似kibana的东西,是对来自各种数据源的数据进行实时展示的平台,拥有这牛逼的外观.给一个官方的demo体验 ...

  4. [四]基础数据概述之Byte详解

        Byte 基本数据类型byte  的包装类 Byte 类型的对象包含一个 byte类型的字段            属性简介   构造方法 Byte的构造方法也是有两种 可以通过基本类型byt ...

  5. [十三]基础数据类型之AbstractStringBuilder

      String内部是一个private final char value[]; 也就意味着每次调用的各种处理方法,返回的字符串都是一个新的,性能上,显然.... 所以,对于可变字符序列的需求是很明确 ...

  6. Servlet主要相关类核心类 容器调用的过程浅析 servlet解读 怎么调用 Servlet是什么 工作机制

      WEB简介   Web项目 是 B/S结构 浏览器/服务器模式的 浏览器发起请求,服务器作出响应   请求的发起和响应使用HTTP协议进行通讯 所谓协议也就是一种固定格式   而Socket是应用 ...

  7. Centos7-yum部署配置LAMP-之LAMP及php-fpm实现反代动态资源

    一.简介 LAMP:linux+apache+mysql(这里用mariadb)+php(perl,python) LAMMP:memcached缓存的 CGI:Common Gateway Inte ...

  8. QT 自定义模态对话框

    新建一个MsgBox类 msgbox.h 代码 #ifndef MSGBOX_H #define MSGBOX_H #include <QDialog> #include <QPus ...

  9. python之编码与解码

    编码 字符串被当作url提交时会被自动进行url编码处理,在python里也有个urllib.urlencode的方法,可以很方便的把字典形式的参数进行url编码.当url地址含有中文或者“/”的时候 ...

  10. 配置多个 git 账号的 ssh密钥

    背景 在工作中,我们通常会以 ssh 的方式配置公司的 git 账号,但是平时也会使用 github 管理自己的项目.因此,我们需要为自己的 github 创建一个新的 git 账号,这就需要生成新的 ...