今天比较郁闷的事情....

fansihong 2005-03-21 03:51:47
今天几个朋友在一起谈论到,无限级树的遍历.并且搞笑的是要用最短的代码.我一兄弟提出的损招.
我写了 贴出来,如果还有其他的朋友有其他方法,也可以贴出来,看看,我想收集到底有多少种遍历的方法.!

以下是我写的
private void love(TreeNodeCollection node)
{
for (int j = 0; j < node.Count; j++)
{
if (node[j].Nodes.Count > 0)//如果有子节点
{
for (int i = 0; i < node[j].Nodes.Count; i++)
{
listBox1.Items.Add(node[j].Nodes[i].Text);
}
love(node[j].Nodes);
}
}
}


调用
love(treeView1.Nodes);


大家有其他方法,可以贴一下,我想收集一些.
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccat 2005-03-21
  • 打赏
  • 举报
回复
private void love(TreeNodeCollection node)
{
foreach (Node iterNode in node)
{
listBox1.Items.Add(Node.Text);
love(Node);
}
}

没有作什么深入的研究,只是按楼主的方法改写成了foreach
fanruinet 2005-03-21
  • 打赏
  • 举报
回复
这个。。。。。。还有其他方法?
ccat 2005-03-21
  • 打赏
  • 举报
回复
虽然不能缩短行数,但是用foreach应该可以使代码显得更简短
fansihong 2005-03-21
  • 打赏
  • 举报
回复
上面的代码有个问题:父节点没加入
修改:

private void love(TreeNodeCollection node)
{
for (int j = 0; j < node.Count; j++)
{
if (node[j].Parent == null)//如果是父节点
{
listBox1.Items.Add(node[j].Text);
}
if (node[j].Nodes.Count > 0)//如果有子节点
{
for (int i = 0; i < node[j].Nodes.Count; i++)
{
listBox1.Items.Add(node[j].Nodes[i].Text);
}
love(node[j].Nodes);
}
}
}

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧