您的位置:首页 > 产品设计 > UI/UE

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: