【发布时间】:2020-01-04 22:03:03
【问题描述】:
我有一个包含字符串属性的节点树层次结构。树层次结构包含一个父子级和该子级的一个子级,依此类推。我必须从列表中找到并更新其中一个中间孩子的字符串属性,并更新父级及其子级。例如,
NodeData[] nodes = new NodeData[]
{
new NodeData
{
Text = "A",
Children = new NodeData[]
{
new NodeData {
Text = "C",
Children = new NodeData[]
{
new NodeData {Text = "AB" }
}
},
new NodeData { Text = "D" },
}
},
new NodeData
{
Text = "B",
Children = new NodeData[]
{
new NodeData
{
Text = "E",
Children = new NodeData[]
{
new NodeData { Text = "F" },
}
}
}
}
};
在这种情况下,我必须找到带有文本“AB”的节点,然后更新节点“AB”,但还要更新具有文本“D”、“C”和“A”的 NodeData。我不知道该怎么做,我想保留一个列表,然后通过该列表运行以更新相关字段。
【问题讨论】:
-
如果有一个“AB”级别的兄弟节点,比如“AC”,你是否也需要更新它?还是一找到“AB”就需要升到父级?
-
是的,我需要
-
您始终可以将父属性放入一个节点中,这样您就可以在树中上下移动。在某些项目中,我还制作了一个 List
,这样我就可以按顺序访问数据以及访问树。列表不会复制节点,而是通过引用访问节点,因此对节点的任何更改都会更新树和列表。