zoukankan      html  css  js  c++  java
  • 最简单的方法实现递归

    方法一:

    //取出第一条

    var first = allMenuList.Where(e => e.ParentId == 0).ToList();

    //Foreach递归

    allMenuList.ForEach(e => e.ChildrenItem = allMenuList.Where(a => a.ParentId == e.Id).ToList());

    return first;

    方法二:

    var first = allMenuList.Where(e => e.ParentId == 0).ToList();

    Recursive(first,allMenuList);

    private void Recursive(List<MenuListModel> currentMenuList, List<MenuListModel> allMenuList)
    {
      if (currentMenuList == null || currentMenuList.Count == 0)
      {
        return;
      }

      foreach (var item in currentMenuList)
      {
        item.ChildrenItem = allMenuList.Where(e => e.ParentId == item.Id).ToList();
        Recursive(item.ChildrenItem, allMenuList);
      };
    }

     

    递归会逐层逐层查下去,查到最末节点(第n个节点)时没有数据会原路返回,回到(n-1)个节点,继续查找,如果没有则继续回到(n-2)个节点,一直到第一个节点。

     

  • 相关阅读:
    4-数组、指针与字符串1.3-this指针
    Linux命令----cp
    Linux命令----mv
    Linux命令----rm
    PHP7下的协程实现 转
    php生成器 yield 转
    python并发编程之多进程(实践篇) 转
    python 多进程
    线程创建 线程数
    多任务 执行
  • 原文地址:https://www.cnblogs.com/opts/p/8006118.html
Copyright © 2011-2022 走看看