for (int i = nodes.Count; i < nodes.Count - 1; i--)
{
FindRecursive(nodes[i]);
}
nodes.Count = 48 但它永远不会进入FindRecursive(nodes [i]);
答案 0 :(得分:0)
启动循环的条件不正确。它应该是:
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
。
修改强>
用户默认和Yakyb在代码中正确发现起点也不正确。
nodes
已从0
编入索引nodes.Count - 1
,因此起点应为nodes.Count - 1
而不是nodes.Count
,以防止超出范围的异常。
答案 1 :(得分:0)
使用LINQ扩展方法.Reverse()
。
foreach (int i in nodes.Reverse()){
FindRecursive(i);
}