我有一个对象,它可以具有相同对象类型的父对象和子对象。是否有一种标准化的实现方式来实现此模式?
类似于以下内容:
public class Nested
{
public string Name {get; set;}
public List<Nested> Parents {get {TODO}}
public List<Nested> Children {get {TODO}}
}
我有一个对象,它可以具有相同对象类型的父对象和子对象。是否有一种标准化的实现方式来实现此模式?
类似于以下内容:
public class Nested
{
public string Name {get; set;}
public List<Nested> Parents {get {TODO}}
public List<Nested> Children {get {TODO}}
}
从内存的角度来看,似乎你的类的任何实例都需要递归地过滤所有内容以找出关系。这是很繁琐的。
我建议只需为您的类添加一个属性,例如以下内容(或根据您想要实现的内容更复杂的内容):
public Nested parent;
这将使它成为一个链接列表。你可以单独创建一个方法,该方法管理基于有限参数集合查找父项(例如FindParentsOfNestedToCertainGeneration(int numOfGenerations, Nested child) - 这只会去到子代并在“parent”属性中向上查找父项链)。