2010-04-14 86 views
0

我有大约200个嵌套的类别。我正在阅读C5泛型库的文档。我不确定C5库是否过度杀伤。我正在考虑将我所有的自定义算法转换为C5实现。如何使用集合实现类别层次结构

这就是我需要的。如果选择某个类别,我需要找到其父母,兄弟姐妹,直接孩子和所有孩子。

这是我设置它的方式。要找到:

父母: 我从当前位置开始,然后遍历列表并找到当前父级。当我找到父母时,我再次遍历整个列表以找到下一个父母,等等。

兄弟姐妹: 我循环遍历整个列表并找到与选择的节点具有相同父节点的所有节点。

直接子女: 我循环遍历整个列表并找到所选节点的父节点。

所有子女: 这一个花了我一段时间弄清楚。但我用递归找到所有选择节点的孩子。

有没有更好的方法来实现这样的事情?

+0

类别对象?或者在treeview上的字符串?或者是什么? – Jay 2010-04-14 00:10:28

+0

类别是对象吗? – Luke101 2010-04-14 00:20:01

回答

2

为什么它必须是基于集合的?我只会创建带有属性Category ParentIList<Category> Children的课程Category。这样,找到父母或前辈真的很容易(而且快!),也可以找到孩子,兄弟姐妹是除了当前类别之外的父母的孩子,所以他们也很容易。发现后代是微不足道的递归。