【发布时间】:2011-09-01 21:42:32
【问题描述】:
我得到了一组物品:
item_id
parent_item_id
name
我需要用类似目录树的结构来表示它。 是否有任何三个类似 .net 的结构可以在其中找到具有某些唯一 ID 的项目。(快速),并使我能够根据项目及其父母的姓名查询项目。
提前致谢。
【问题讨论】:
标签: .net algorithm data-structures collections c#-4.0
我得到了一组物品:
item_id
parent_item_id
name
我需要用类似目录树的结构来表示它。 是否有任何三个类似 .net 的结构可以在其中找到具有某些唯一 ID 的项目。(快速),并使我能够根据项目及其父母的姓名查询项目。
提前致谢。
【问题讨论】:
标签: .net algorithm data-structures collections c#-4.0
据我所知,没有内置任何内容。这是一篇很好的文章,介绍了如何在 .NET 中实现二叉搜索树
http://msdn.microsoft.com/library/ms379572.aspx
听起来这将是您开始的好地方。
【讨论】:
大多数人只会自己实现这一点。通常通过添加子集合
item_id
parent_item_id
name
children
您必须小心保持父项 ID 同步,并且您可能需要实施规则,例如,子项只能有一个父项,并且您还需要保持 parent_item_id 只能从班级外部读取.
由于性能对您很重要,而且工作量很小,我将使用一种结构来确定时间和内存的基线,该结构实际上可以满足您的需要,但您可能不想使用 datatables 。要完成这项工作,您只需定义三列(item_id、parent_item_id、name)并在 item_id 和 parent_item_id 之间添加关系。
一旦您有了基线 DataTable 数字,您应该能够做得更好,否则您不妨只使用 DataTable。
【讨论】: