我正在尝试使用列表在C#中模拟HTML DOM节点树的行为,并且在尝试获取节点的同级时遇到麻烦。
Document类(位于树的顶部)从Node类继承。
获取下一个同胞的方法
if((Parent.HasChildNodes() && Parent.Children.Length > 1) &&
Parent._children.IndexOf(this) < Parent.Children.Length - 1)
{
return Parent.Children[Parent._children.IndexOf(this) + 1];
}
else
{
return null;
}
追加新孩子的方法
public Node AppendChild(Node node)
{
_children.Add(node);
SetChild(node);
node.Parent = this;
node.IsConnected = true;
return node;
}
糟糕。 1: _children 字段是private List<Node>
糟糕。 2: Children 属性是public Node[]
,获取者:return _children.ToArray();
糟糕。 3: HasChildNodes 方法:public bool HasChildNodes() { return Children.Length; }
问题: 我通过创建1个Document对象和2个Node对象并将这些节点追加到文档中进行了一个简单的实验,当我请求第一个节点的下一个同级节点时,它返回null,可以得到任何帮助。