2012-12-05 74 views
2

我有一个零件属性的对象。但有些部分是“父母”并且有孩子的部分。这些子部件具有与父部件相同的属性(不是相同的属性值,只是与它们自己的值相同的属性)。同一类型对象中的对象列表?

因此,对于每个Part对象,我想拥有一个子部件的列表属性。我想要做的是创建一个Part对象列表 - Part对象中的每个子对象都是一个对象,如果它是父对象的话。

我的问题是...你可以有一个对象在同一个对象类型的对象列表吗? (这是否甚至有意义吗?)

简单的例子:

public class Part 
{ 
    private string _Part; 
    private string _Description; 
    private List<Part> _childParts = new List<Part>(); 
} 
+0

小代码示例可能会有所帮助。我迷失了所有的孩子和父母:)。 –

+0

我已经添加了一个我想要做的例子......显然会有更多的属性,这是一个非常减少的版本:) – Stuart

+0

示例很好,因为@thersch指出这是Composite模式。如果父零件和子零件是相同的,那么这个工作。一旦他们开始变得不同,你会想要为不同类型的对象分别分类。 –

回答

5

是的,你可以,它是所有的树结构的基石。

例如:

class Part { 
    public List<Part> Children { get; set; } 
    public Part Parent { get; set; } 
} 

是完全有效的。

相关问题