【发布时间】:2009-04-14 18:39:28
【问题描述】:
在我正在编写的应用程序中,我试图找到一种有效存储层次结构的方法。这是example。
在底部,您可以看到要存储的节点。我应该使用多维列表吗?这似乎不是很理想,对吧?我在想像这样持有参考资料:
node.Parent
node.Children { collection }
有没有人用过这种东西?
【问题讨论】:
标签: c# .net collections
在我正在编写的应用程序中,我试图找到一种有效存储层次结构的方法。这是example。
在底部,您可以看到要存储的节点。我应该使用多维列表吗?这似乎不是很理想,对吧?我在想像这样持有参考资料:
node.Parent
node.Children { collection }
有没有人用过这种东西?
【问题讨论】:
标签: c# .net collections
这是一个相当基本的树实现,是的。如果选择为孩子创建 IList 或 IEnumable 或 ArrayList 等集合,则由您决定。
我强烈建议您构建一个通用实现,而不是一个类型化到您的域模型的实现,但这取决于您。
【讨论】:
是的。你有正确的想法。如果您需要双向层次结构,我不会使用多维列表...我会在树中添加一个节点,每个节点都包含一个父节点和一组子节点。
你在正确的轨道上。
【讨论】:
如果不是所有项目都属于同一类型,在这种情况下,我可以为链表和子集合使用抽象基类。
【讨论】: