我有一个可以转换为树形结构的类。
public class Tree
{
public bool leaf { get; set; }
public string Path { get; set; }
public string Name { get; set; }
public string ID { get; set; }
public int SortOrder { get; set; }
public bool expanded { get; set; }
public List<Tree> children { get; set; }
public Tree()
{
children = new List<Tree>();
}
}
类中的children属性是包含所有子节点的树类列表。
每个节点都可以有多个子节点和子节点。每个节点都有sortOrder属性,我想用它来决定节点在任何给定级别出现的顺序。
对于叶属性为true的所有节点(树的底部的节点),需要根据SortOrder属性对该级别的-in进行排序。
如何使用所有级别的SortOrder属性对数据进行排序。
答案 0 :(得分:0)
您可以通过将以下方法添加到Tree
来递归排序叶节点:
public void OrderLeaves()
{
children = children.Where(x => x.leaf).OrderBy(x => x.SortOrder).ToList();
children.ToList().ForEach(c => c.OrderLeaves());
}