我有一个Type Parent对象,它有Parent类型的子对象,依此类推。 哪种数据类型最适合存储此类数据.. 添加对象是动态的,因为用户在UI中添加了对象。
答案 0 :(得分:0)
由于名称Parent
在语义上具有误导性,我会将其替换为Node
,将您的问题解释为代码,
class Node : IEnumerable<Node> { }
现在,你说你想支持动态变化。如果会有一点变化,或者一般是批发变更,我会选择
class Node : List<Node> { }
但如果会有很多小变化,
class Node : LinkedList<Node> { }
可能更合适。
如果要支持树的许多小更改,我不会使用xml作为后备存储。虽然这似乎有意义,并且适用于大小合理的树,当树很大并且您在文档开头附近添加或删除数据时,您会得到一个明显的Shlemiel The Painter效果,因为内存被(de)分配并且尾巴移动了。除非您碰巧使用的XML文档实现避免了这种情况。
使用XML的优点是免费序列化,但XML并不是存储私有数据的最常用方法。存在更快和更小的替代方案。