我有一堆数据将表示为一棵树。我正在使用的控件需要正确排序数据。
这是每个节点的结构:
public class TreeNode
{
public Guid id { get; set; }
public string name { get; set; }
public int level { get; set; }
public Guid? parent { get; set; }
public bool isLeaf { get; set; }
}
我需要一种对数据进行排序的方法,以便我有一个 TreeNodes 列表,首先是根,然后是它的子节点,依此类推。换句话说,所有直接孩子都需要跟随列表中的父母。
我还希望按名称对子节点和叶节点进行排序。(>
= 可扩展,o
= 叶)
root >
level1a >
level1b >
level2d >
level2a o
level1a o
level1b o
是否有捷径可寻?
我假设我需要一些递归函数,并且不能使用 order by 语句的组合对其进行排序(类似于list.OrderBy(x => x.parent).ThenBy(x => x.level).ThenBy(x => x.isLeaf);
)