public List<ModelTestDept> getTrees(int parentid, List<ModelTestDept> nodes)
{
List<ModelTestDept> mainNodes = nodes.Where(x => x.ParentId == parentid).ToList<ModelTestDept>();
List<ModelTestDept> otherNodes = nodes.Where(x => x.ParentId != parentid).ToList<ModelTestDept>();
foreach (ModelTestDept dpt in mainNodes)
{
dpt.Nodes = getTrees(dpt.Id.Value, otherNodes);
}
return mainNodes;
{
List<ModelTestDept> mainNodes = nodes.Where(x => x.ParentId == parentid).ToList<ModelTestDept>();
List<ModelTestDept> otherNodes = nodes.Where(x => x.ParentId != parentid).ToList<ModelTestDept>();
foreach (ModelTestDept dpt in mainNodes)
{
dpt.Nodes = getTrees(dpt.Id.Value, otherNodes);
}
return mainNodes;
}
求所有父类节点:
public List<ModelTestDept> FilterDeptParents(List<ModelTestDept> list, int deptId)
{
List<ModelTestDept> parents = new List<ModelTestDept>();
var dept = list.FirstOrDefault(x => x.Id == deptId);
if (dept != null)
{
parents.Add(dept);
if (dept.ParentId.HasValue)
{
parents.AddRange(FilterDeptParents(list, dept.ParentId.Value));
}
}
return parents;
}