枚举的树集合

时间:2013-07-24 09:20:55

标签: c#-4.0 architecture

我想在集合中放入一些数据。我已经有了一个解决方案,但我想让它更通用,更简单。恕我直言的嵌套字典对此没什么帮助。

private static Dictionary<enumRoot, Dictionary<enumLevel1, Dictionary<enumLevel2, Tuple<int, bool, string>>>>

因此每个节点/级别都应该有一个密钥,由枚举表示。最后(一个元组ATM)应该是一些对象。我想过实现某种复合模式的递归方法。我想过用List或List构造对象,然后添加每个。

我用Google搜索了一个TreeNodeCollection,但是我找不到很多关于它的信息。这个集合是否适用于我的案例,我该如何预测这个问题呢?

1 个答案:

答案 0 :(得分:0)

您可以依赖自定义Class来构建基于节点的结构。例如:

public enum nodeName { nodeName1, nodeName2, nodeName3 };
public enum nodeAttribute { nodeAttribute1, nodeAttribute2, nodeAttribute3 };
public class Node
{
    public nodeName name { get; set; }
    public Node parent { get; set; }
    public Dictionary<nodeAttribute, string> attributes { get; set; }
    public List<Node> children { get; set; }
}

可以使用以下内容轻松填充:

Node node1 = new Node();
Node node2 = new Node();

node1.name = nodeName.nodeName1;
node1.parent = null;
node1.attributes = new Dictionary<nodeAttribute, string>();
node1.attributes.Add(nodeAttribute.nodeAttribute1, "1");
node1.attributes.Add(nodeAttribute.nodeAttribute2, "2");
node1.children = new List<Node>();
node1.children.Add(node2);