【发布时间】:2014-04-03 10:32:16
【问题描述】:
我有一个可以转换成树形结构的类。
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 属性,我想使用它来决定节点在任何给定级别出现的顺序。
对于所有叶子属性为真的节点(树底的节点)需要根据该级别内的 SortOrder 属性进行排序。
如何使用 SortOrder 属性对所有级别的数据进行排序。
【问题讨论】:
-
你的树的节点存储在哪里?你有他们的清单吗?到目前为止,我认为子列表包含该节点的子项。让 A、B 和 C 是树的唯一节点。假设 A 是树的根,A 的 B 和 C clidren。那么 A 的 SortOrder 将为 0,它的子节点将是两个元素 {B,C} 的列表。最后 B 和 C 的 SortOrder 为 1,它们的子集合为空。对吗?
-
@ChristosPaisios:是的,children 是包含所有子节点的列表。由于子列表的类型为“树”,因此子项中的每个项都可以再次拥有多个子项。
-
@Brown_Dunamite 请发布一个您拥有的示例,一个带有几个节点的树实例,然后向我们展示您期望的输出。谢谢!
标签: c# sorting data-structures