我如何循环在一个列表或TreeNodeCollection向后
本文关键字:向后 一个 列表 TreeNodeCollection 何循环 循环 | 更新日期: 2023-09-27 18:16:34
for (int i = nodes.Count; i < nodes.Count - 1; i--)
{
FindRecursive(nodes[i]);
}
节点。Count = 48但它永远不会进入FindRecursive(nodes[i]);
启动循环的条件不正确。应该是:
for (int i = nodes.Count -1; i >= 0; i--)
{
FindRecursive(nodes[i]);
}
在您的代码中,i
从nodes.Count
(48
)开始。然后循环在i < nodes.Count - 1
时运行,但nodes.Count - 1
永远不能大于nodes.Count
。你想要在到达最后一个元素时停止循环,当你向后移动时,这就是元素0
。
编辑
Users Default和Yakyb在代码中正确地发现起始点也不正确。
nodes
从0
索引到nodes.Count - 1
,所以起点应该是nodes.Count - 1
而不是nodes.Count
,以防止越界异常。
使用LINQ扩展方法.Reverse()
.
foreach (int i in nodes.Reverse()){
FindRecursive(i);
}