层次结构的集合

时间:2009-04-14 18:39:29

标签: c# .net collections

在我写的应用程序中,我试图找到一种有效存储层次结构的方法。这是一个example

在底部,您可以看到要存储的节点。我应该使用多维列表吗?这似乎不是最优,对吧?我在考虑像这样持有参考文献:

node.Parent
node.Children { collection }

任何人都有这种东西的经验吗?

3 个答案:

答案 0 :(得分:1)

呀。你有正确的想法。如果你需要一个双向层次结构,我就不会使用多维列表......我会在树上添加一个节点,每个节点都包含一个父节点和一个子集合。

你走在正确的轨道上。

答案 1 :(得分:1)

这是树的一个相当基本的实现,是的。如果选择为孩子们制作集合,则IList或IEnumable或ArrayList等由您决定。

我强烈建议您构建一个通用实现,而不是键入一个类型的域模型,但这取决于您。

答案 2 :(得分:1)

如果并非所有项目都属于同一类型,我可以在这种情况下使用抽象基类作为链接列表和子集合。