.Net的树状结构

时间:2011-05-25 15:48:59

标签: .net algorithm data-structures collections c#-4.0

我收到了一些项目:

item_id
parent_item_id
name

我需要在结构目录树中表示它。 是否有任何三种类似.net的结构可以使用一些唯一的ID(快速)查找其中的项目,并使我能够根据项目及其父项名称查询项目。

提前致谢。

2 个答案:

答案 0 :(得分:1)

据我所知,没有内置任何东西。这是一篇很好的文章,讨论如何在.NET中实现二进制搜索树

http://msdn.microsoft.com/library/ms379572.aspx

听起来这是你开始的好地方。

答案 1 :(得分:1)

大多数人会自己实现这一点。通常通过添加子集合

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。