对象的嵌套层次结构模式

4

我有一个对象,它可以具有相同对象类型的父对象和子对象。是否有一种标准化的实现方式来实现此模式?

类似于以下内容:

public class Nested
{
   public string Name {get; set;}

   public List<Nested> Parents {get {TODO}}
   public List<Nested> Children {get {TODO}}
}

请检查此链接是否有所帮助:http://forums.silverlight.net/forums/p/231184/566463.aspx。关于类似问题的数据库讨论,请参考以下链接:http://www.dbforums.com/microsoft-sql-server/1642466-multiple-parents-tree-digraph-implementation.html和http://forums.asp.net/t/1259184.aspx/1。 - Sandeep G B
2个回答

4

1

从内存的角度来看,似乎你的类的任何实例都需要递归地过滤所有内容以找出关系。这是很繁琐的。

我建议只需为您的类添加一个属性,例如以下内容(或根据您想要实现的内容更复杂的内容):

public Nested parent;

这将使它成为一个链接列表。你可以单独创建一个方法,该方法管理基于有限参数集合查找父项(例如FindParentsOfNestedToCertainGeneration(int numOfGenerations, Nested child) - 这只会去到子代并在“parent”属性中向上查找父项链)。


Carl Benson,我认为要求是单个节点可以有多个父级。例如,员工可以有多个主管的组织机构。 - Sandeep G B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接