首先创建模型类Menuspublicclass Menus
{//菜单Idpublicint Id { get; set; }//菜单名publicstring MenuName { get; set; }//父节点Idpublicint ParentId { get; set; }
}窗体中放入button跟TreeView控件声明全局变量privatestatic List<Menus> menus;添加按钮事件privatevoid button1_Click(object sender, EventArgs e)
{menus = new List<Menus>();menus.Add(new Menus { Id = 1, MenuName = "基础设置", ParentId = 0 });menus...
除了调用其他方法,方法还能调用自己,这称为递归 1using System;2using System.Collections.Generic;3using System.IO;4using System.Linq;5using System.Text;6using System.Threading.Tasks;7 8namespace ConsoleApp29{
10class Program
11 {
12///<summary>13/// 递归 本身方法调用自己
14/// 本例子是查询文件夹下一共有多少个文件
15///</summary>16///<param name="args"></param>17staticvoid Main(string[] args)
18 ...
///<summary>/// 递归查询
///</summary>///<param name="groupID"></param>///<param name="idList"></param>protectedstaticvoid FindChildrenID(int groupID, StringBuilder idList)
{// 这里是找孩子节点
var gLst = RepositoryFactory.Group.FindList(p => p.ParentID == groupID, "ID", false).ToList();
foreach (var item in gLst)
{//判断子节点是否存在,有则继续if (RepositoryFactory.Group.Find(p => p.ParentID == i...
递归全排列(C#): static int[] xx=new int[4]; static void Main(string[] args) { printP(4, xx, 0); } static void printP(int n,int [] A,int cur) { int i, j; if (cur == n) { for (i = 0; i < n; i++) Console.Write(A[i]); Console.WriteLine(); } else ...
枚举类型一组常量的组合, 在不制定任何索引的情况下,默认第一个字段从0开始,之后的依次+1 在指定了某个索引的情况下,之后的依次+1 若之前定义的某字段的索引指向了之后的某个默认字段,那么他俩完全相同 不需要初始化Console.WriteLine(meiju.five);//常量字段 Console.WriteLine((int)meiju.five);//字段代表的值 Console.WriteLine(meiju.one);//常量字段 Console.WriteLine((int)meiju.one);//字段代表的值 Console.WriteL...
https://blog.csdn.net/wumiju/article/details/80429412 public partial class ProductTypeModel:DbEntityModels.ProductType { public List<ProductTypeModel> SubProductTypeInfo { get; set; } } public IActionResult ListProductType() { List<Models.ProductTypeModel> listType = new List<Models.ProductTypeModel>(); var info = typeBll.Query(x => x.IsDelete == f...
public static int Foo(int i) { if (i < 3) { return 1; } else { return Foo(i - 1) + Foo(i - 2); } } static void Main(string[] args) { Console.WriteLine(Foo(8)); } 原文:http://www.cnblogs.com/kkfish/p/Fibonacci.html
.net中使用linq递归查询 public IEnumerable<NodeData> GetSonID(string p_id){ //获取表中所有数据INodeDataService NodeDataService = new NodeDataService();var entity = NodeDataService.FindAll(); //查询父节点和给定节点id相同的节点var query = from c in entitywhere c.ParentId == p_idselect c;var list = query.ToList(); //递归查询节点id和已经查询出来的节点的父...
什么是递归函数/方法? 任何一个方法既可以调用其他方法也可以调用自己,而当这个方法调用自己时,我们就叫它递归函数或递归方法。 通常递归有两个特点: 1. 递归方法一直会调用自己直到某些条件被满足 2. 递归方法会有一些参数,而它会把一些新的参数值传递给自己。 那什么是递归函数?函数和方法没有本质区别,但函数仅在类的内部使用。以前C#中只有方法,从.NET 3.5开始才有了匿名函数。 所以,我们最好叫递归方法,而非递归函数...
递归是一个对初学者来说不太好理解的概念,要我说的话,我觉得像俄罗斯套娃,像下面这种图。递归是不停的调用自己,并在达到某个条件的时候停止递归,返回结果。我们尝试下解决这样的问题:斐波那契数列斐波那契数列的排列是:0,1,1,2,3,5,8,13,21,34,55,89,144……它后一个数等于前面两个数的和。在这个数列中的数字,就被称为斐波那契数。现在想计算第n个斐波那契数是多少?第n个斐波那契数=第n-1个斐波那契数+第n-2...
BruteForce算法递归实现,少了点慧根using System;namespace BruteForce
{class Program{static void Main(string[] args){bool run = true;while (run){Console.WriteLine("BruteForce算法,计算子串在主串中的位置:");Console.WriteLine("输入一个主串:");string mainString = Console.ReadLine().Trim().ToString();Console.WriteLine("输入一个子串:");string substring = Console.ReadLine().Trim().ToString();Console.Wr...
冒泡: 1 //将 1, 5, 6, 8, 4, 3, 9, 2, 7 按照从小到大排序2 3 int [] a={ 1, 5, 6, 8, 4, 3, 9, 2, 7 }4 5 int temp;6 for (i=0 , i< a.lenght ,i++)7 {8 9 for(j=i+1,j<a.lenght,j++)
10 {
11 if (a[i]>a[j])
12 {
13 temp=a[i];
14 a[i]=a[j];
15 a[j]=temp;
16
17 }
18 }
19 } 递归: 1 //1,1,2,3,5,8,13 第10位数是多少2 3 foot(10)4 5 public state int foot(int count)6 {7 if (count <=0)8 return 0;9 e...
十年河东,十年河西,莫欺少年穷
学无止境,精益求精
实际开发过程中,我们会遇到很多拥有上下级关系的事物,比如:组织架构,系统的左侧菜单等,数据库设计中,我们一般的解决方案就是把这些拥有上下级关系的表结构设计为:ID Name Sort ParentId Description等字段。
上述字段的含义相信小伙伴都知道对应的含义【ID主键,名称,排序,父亲ID,描述】
那么针对这样的数据结构,我们怎么构造树状数据呢?
下面以一个具体的示例探讨...
背景
将一个具有ChildCode(子节点)和ParentCode(父节点)的list集合转换成树状结构。
生成数据基本格式,如下图: 最终展示样式,如下图:
(注:如果你对样式没要求,可以使用layui的树形组件,简单方便-https://www.layui.com/demo/tree.html)有两种转换方式,一种是普通的递归,一种是双层循环。数据量非很大的情况下,递归的效率相比双层循环来说,效率高一些。 注:不要循环调用数据库,最好将数据根据条件全部查询出来,然...
递归查询 private string InitMenuBtnTreeNodeByCyb(){try{S_MenuManager manager = new S_MenuManager();DataTable dt = manager.GetMenuList();string rootid = Request.Form["RootID"];List<tmp_menu> list_data = new List<tmp_menu>(dt.Rows.Count);foreach (DataRow dr in dt.Rows){list_data.Add(new tmp_menu{MENUID = dr["MENUID"].ToString(),MENUNAME = dr["MENUNAME"].ToString(),PARENTID=dr["PARENTID"].ToSt...