请帮助算法。我有一个这样的列表:
public class Stratigraphy
{
public Stratigraphy(int idType, int idSysstratigraphy, int stratparent, string name, string nameAdd, int ordernum)
{
IdType = idType;
IdSysstratigraphy = idSysstratigraphy;
Stratparent = stratparent;
Ordernum = ordernum;
}
public int IdType { get; set; }
public int IdSysstratigraphy { get; set; }
public int Stratparent { get; set; }
public int Ordernum { get; set; }
}
看起来,例如,像这样:
这里的 IdType 是主要排序的字段。StratParent 父元素是指 IdSysstratigraphy。OrderNum 元素顺序 i common StratParent
如何根据给定的列表想到一种算法来显示这样的结构?
如果您不求助于绘图,那么您可以使用标准控件
TreeView
。允许您构建基于节点的各种数据结构
TreeNode
。每个TreeNode
都有一个属性Level
和一个名称。这是填充树的示例。主题区域完全不同,但您可以从此处获取填充图案。
填充算法基于中逐层相加
TreeNode
。TreeView
在您的情况下,您需要按 ID 优先级顺序进行选择: 首先按父 ID 选择->填充 0 级节点->按 ID 选择,从子到父->填充 1 级节点->递归地依此类推,直到到达最后一级。