1

我想把一些数据放在一个集合中。我已经有了一个解决方案,但我想让它更通用且不那么难看。恕我直言,嵌套字典并没有太大帮助。

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

所以每个节点/级别都应该有一个键,由一个枚举表示。最后(元组 ATM)应该是某个对象。我考虑过实现某种递归方法,比如复合模式。我考虑过用 List 或 List 构造对象,然后添加每个。

我用谷歌搜索了一个 TreeNodeCollection,但我找不到太多关于它的信息。这个集合是否适用于我的案例,我该如何解决这个问题?

4

1 回答 1

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);
于 2013-07-24T11:55:12.960 回答