首页 > 其他分享 >方法体中定义递归方法

方法体中定义递归方法

时间:2022-09-28 18:37:25浏览次数:73  
标签:Func 递归 menu List childlist 体中 ParentId var 方法


public List<dynamic> GetData(IDbConnection connection)
{
    Func<int, List<dynamic>, List<dynamic>> DiguiChild = null;
    DiguiChild = new Func<int, List<dynamic>, List<dynamic>>((pid, plist) =>
    {
        List<dynamic> childlist = new List<dynamic>();
        foreach (var menu in plist)
        {
            if (menu.ParentId != null && menu.ParentId > 0)
            {
                if (menu.ParentId == pid)
                {
                    childlist.Add(menu);
                }
            }
        }
        foreach (var menu in childlist)
        {
            menu.Child = DiguiChild (menu.Id, plist);
        }
        return childlist;
    });
    Func<List<dynamic>,List<dynamic>> Genter = new Func<List<dynamic>,List<dynamic>>((levellist) =>
    {        
        var result = levellist.Where(x => x.ParentId==null).ToList();
        foreach (var c in result)
        {
            c.Child = DiguiChild (c.Id, levellist);
        }
        return result;
    });
}

 


来源:https://www.iwmyx.cn/fftzdydgff.html

标签:Func,递归,menu,List,childlist,体中,ParentId,var,方法
From: https://www.cnblogs.com/star8521/p/16739156.html

相关文章

  • for循环与range()方法
    1、昨日内容回顾垃圾回收机制引用计数、标记清除、分代回收流程控制理论顺序流程、分支结构、循环结构代码的缩进及其含义分支结构单if...else语句、if...elif.......
  • Go基础编程:递归函数、函数类型、匿名函数与闭包
    1.递归函数递归指函数可以直接或间接的调用自身。递归函数通常有相同的结构:一个跳出条件和一个递归体。所谓跳出条件就是根据传入的参数判断是否需要停止递归,而递归体则是......
  • AI智能检测识别平台EasyCVR出现卡顿及反应慢的原因分析以及解决方法
    EasyCVR平台是我们支持协议最全面的视频平台,它能支持标准协议,包括:国标GB/T28181、RTMP、RTSP/Onvif协议,以及厂家的私有协议与SDK,如:海康Ehome协议、海康SDK、大华SDK等。平......
  • PADS应用笔记:Layout里对齐和等间距方法
    问题怎么在layout布局时,对元件进对齐和等间距布局呢?方法关于对齐,鼠标选中多个元件后,邮件直接选对齐就好了,根据需求进行中心或者上下左右对齐关于等间距,有两个方法1.......
  • 自定义toString()方法检测对象类型时的返回值[object x](JS)
    如果想通过 Object.prototype.toString()方法来检测对象类型,则需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式来调用toString()方法。......
  • python 内置数据类型与方法
    序列类型包括列表、元组和范围(range)以及字符串,序列类型的对象有一些共同的操作,如操作符运算、切片操作等。1.list类型与操作1.1玩转索引列表(list)类型的对象可以通过li......
  • 9月28日——while循环知识不充、for循环、break及continue生效范围和range方法的介绍
    目录今日内容总结一、while循环内容补充1、死循环2、嵌套和全局标志位二、循环结构之for循环概念介绍for循环结构:1、for结构2、for...else结构三、break和continue的生效范......
  • 音频质量检测模型中标准数据集的构建方法
    背景音频质量检测模型训练中,纯净高质量的音频数据集比较好获得,但是损伤音频的数据集比较少,而且损伤音频的质量得分也很难评估。我们采用了一种只依靠纯净高质量的语音数据集......
  • Echarts销毁方法
    在调取Echarts实例时判断是否存在,存在就销毁if(this.launchEchart!=null&&this.launchEchart!=""&&this.launchEchart!=undefined){  this.launchEchar......
  • mysql存储过程的调用方法
    mysql存储过程的调用方法是经常会用到的,下面就为您介绍mysql存储过程的调用方法,希望对您学习mysql存储过程方面会有些许帮助。先进入mysql命令行环境然后创建函数,先要选择数......