C#学习(5):lambda表达式构建EasyUI树结构
2015-03-26 17:10
316 查看
1。利用泛型委托和lambda表达式如何建树
例如前台需要一组部门json数据,结构如下:其实就是每个LIST里面嵌套一个自身的LIST,再看看下面部门实体如何定义,你就会明白:
public partial class E_Department : EntityBase { public string CompanyName { get; set; } public string ParentName { get; set; } public List<E_Department> Children { get; set; } public string CheckedGuid { get; set; } }
这时候我们就可以利用泛型委托,定义一个递归函数从一级部门的查找对应的子级部门,即每一级部门如果有子级部门数据,就填入该级LIST<>里面:
public delegate void Action<in T>(T obj);
//先把你想要的部门数据读取出来 List<E_Department> totalItems = (List<E_Department>)B_Department.Instance.Get_DepartmentList(slr); //泛型委托 Action<E_Department> SetChildren = null; //封装一个方法(递归)不断读取树的分支 SetChildren = Parent => { Parent.Children = totalItems.FindAll(childItem => childItem.ParentGuid == Parent.Guid); Parent.Children.ForEach(SetChildren); }; //初始化树列表 List<E_Department> treeItems = totalItems.FindAll(parentItem => parentItem.ParentGuid == ""); treeItems.ForEach(SetChildren);
相关文章推荐
- C#学习(6):DataSet构建EasyUI树结构
- 转:C#数据结构和算法学习系列十一----构建字典DictionaryBase 类和SortedList 类
- C#学习笔记二:并行编程基础:在 PLINQ 和 TPL 中的 Lambda 表达式
- c# lambda表达式学习(1)
- C#特性 学习笔记(Lambda表达式 迭代)
- C#Lambda表达式学习日记
- (原创)c#学习笔记03--变量和表达式02--C#控制台应用程序的基本结构
- C# Lambda表达式学习笔记
- [深入学习C#]匿名函数、委托和Lambda表达式
- c# lambda表达式学习
- C#学习笔记 - Lambda表达式
- C#学习笔记一:委托、匿名函数、Lambda 表达式
- 学习笔记之在查询中使用 Lambda 表达式(C# 编程指南)
- 学习笔记之在 LINQ 外部使用 Lambda 表达式(C# 编程指南)
- C#动态构建lambda表达式(一)
- [C#学习教程-委托]001.大道至简之委托(代理),匿名函数,Lambda表达式
- 学习笔记之Lambda 表达式(C# 编程指南)
- C# in Depth Third Edition 学习笔记-- Lambda表达式和表达式树
- 黑马程序员之C#学习笔记: Lambda表达式学习总结