【发布时间】:2018-04-20 07:48:50
【问题描述】:
我们有一个第 3 方工作流系统,其中包含一个分层的操作列表,该列表以以下格式存储为平面文件:
- 根
- 根节点1
- 根节点1-节点1
- 根节点1-节点2
- 根节点1-节点2-节点1
- 根节点1-节点2-节点1-节点1
- 根节点1-节点2-节点1-节点2
- 根节点2
- 根节点2-节点1
等等……
在每个节点下面是一个属性列表,这个项目的目的是编写一个小程序,它将遍历每个文件,从根节点关系构建一个层次结构,然后我们将能够使用这个模型来运行报告数据。
到目前为止,我的尝试是创建一个 Node 类,其中包含一个类型为 List<Node> 的 Child 属性,它将存储层次结构
我正在努力弄清楚如何确定哪个节点应该是哪个节点的子节点。我当前的过程是捕获前一个节点名称,如果当前节点名称包含前一个节点名称,则它必须是一个子节点,但是当它深入几个节点时,我发现这是易碎的。
对于描述这些关系的更可靠方式,有人有什么建议吗?
【问题讨论】:
-
你能总是先添加最高级别的节点吗?如果是这样,当您构建层次结构时,还要将每个节点添加到
Dictionary<string, Node>。字典键将类似于“Root-Node1”。然后,只需删除子键的最后一部分并使用生成的键在字典中查找其父键。