层次结构
我有一个需求来表示c#中的类中的层次结构。 层次结构的“叶”节点需要键入为“A类”或“B类”。层次结构
我该如何做到这一点。是
确定更详细
涉及的类如下
FieldClass - 这有一堆属性
SegmentClass - 一个段是字段
group类的集合 - 的基团是分段或组的集合(即存在递归关系)
分层上的节点hy可以是“段”或“组”。所以在根级这个集合的类可以是类型段或组。
这代表了你的结构:
interface IGroupNode
{ }
class Group : IGroupNode
{
List<IGroupNode> Children { get; set; }
}
class Segment : IGroupNode
{
List<Field> Fields { get; set; }
}
class Field
{
bool myProperty { get; set; }
}
,树可以IGroupNodes名单中实例化:
var rootLevel = new List<IGroupNode>();
使“ClassA”和“ClassB”实现特定的共享接口(即:ILeafNode
)。然后,您可以创建您的叶子ILeafNode
并将任何类类型添加到树中。
是通用接口或通用基类(通常是抽象类作为A类和B类的基类),然后可以将叶节点声明为抽象基类的一种类型 – 2010-10-20 17:52:59
由于关于您确切的要求没有太多的信息,我会给你两个开始工作的地方。
如果您需要具有不同子类型的数据结构,但在使用“interfaces”或“base classes”(在本例中为抽象类)进行打字时仍然类似,则应该这样做。 “A类”和“B类”都可以从“ISomeClass”或“SomeClassBase”派生,并且在结构上仍然相似。以便您可以使用通用数据结构(如List或Dictionary)。
如果您想直观显示此列表,您可以查看Silverlight或ASP.NET空间中的TreeView Control或其等价物。
希望有所帮助,祝你好运。
您可以优化你的问题一点,举个例子左右? – Onkelborg 2010-10-20 17:41:50