【发布时间】:2016-02-09 07:59:56
【问题描述】:
我有以下代码比较node.Texto 每个给定的节点集,如果它们相等则返回一,否则返回零。但我的问题是它只是比较第一个孩子,因为nodes2.Nodes[ii] 因此我知道它不会继续前进。
据我所知,如果它是 TreeNodeCollection,使用 foreach 循环对每个节点和子节点进行递归是很容易的。
但是在这里我如何将代码更改为递归版本? 提前致谢!
public int Compare_ChildNodes(TreeNode nodes1, TreeNode nodes2)
{
int length_children1 = nodes1.Nodes.Count;
int length_children2 = nodes2.Nodes.Count;
int result_int = 1;
if (length_children1 != length_children2)
{
result_int = 0;
}
else
{
for (int ii = 0; ii < length_children1; ii++)
{
if (nodes1.Nodes[ii].Text.Equals(nodes2.Nodes[ii].Text))
{
int ret = Compare_ChildNodes(nodes1.Nodes[ii], nodes2.Nodes[ii]);
result_int = ret;
}
else
{
result_int = 0;
}
}
}
return result_int;
}
【问题讨论】:
标签: c# .net winforms treeview treenode