对多树中的节点进行排序
本文关键字:排序 节点 | 更新日期: 2023-09-27 17:56:17
我有一个可以转换为树结构的类。
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>();
}
}
类中的 child 属性是包含所有子节点的树类列表。
每个节点可以有多个子节点和子节点。 每个节点都有sortOrder属性,我想使用它来决定节点在任何给定级别出现的顺序。
对于叶属性为 true 的所有节点(树底部的节点),需要根据该级别中的 SortOrder 属性进行排序。
如何通过对所有级别使用排序顺序属性对数据进行排序。
您可以通过将
以下方法添加到Tree
来递归排序叶节点:
public void OrderLeaves()
{
children = children.Where(x => x.leaf).OrderBy(x => x.SortOrder).ToList();
children.ToList().ForEach(c => c.OrderLeaves());
}