/// <summary> /// 根据Parent获取子节点 方法1 /// </summary> /// <param name="source"></param> /// <param name="node"></param> /// <param name="id"></param> /// GetParent(DbSet.ToList(), null, input.id); private void GetParent(List <Domain.Permission.Info.UserInfo.UserInfo> source, UserInfoTreeOutputDto node, string id) { var list = source.Where(x => x.ParentId == id && x.IsDelete == 0).ToList(); foreach (var item in list) { var model = new UserInfoTreeOutputDto { id = item.Id, createtime = item.CreateTime, username = item.UserName, parentid = item.ParentId }; GetParent(source, model, item.Id); if (node == null) { Tree.Add(model); } else { node.Item.Add(model); } } }
/// <summary> /// 根据Parent获取子节点 方法2-2 /// </summary> /// <param name="val"></param> /// <param name="originalList"></param> /// <returns></returns> public static List <UserInfoTreeOutputDto> GetAllLeaves(UserInfoTreeOutputDto val, List <Domain.Permission.Info.UserInfo.UserInfo> originalList) { var nodes = originalList.Where(v => v.ParentId == val.id && v.IsDelete == 0).Select(x => new UserInfoTreeOutputDto { id = x.Id, username = x.UserName, parentid = x.ParentId, createtime = x.CreateTime, Item = new List <UserInfoTreeOutputDto>() }).ToList(); foreach (var node in nodes) { node.Item = GetAllLeaves(node, originalList); } return(nodes); }