如果我打破了任何堆栈溢出问题规则,我会事先道歉,我试着确保我所做的一切都被允许,但我可能错过了一些东西。这是我第一次真正提出问题。
我刚刚完成了一个使用Dijkstra算法的程序来查找一个站到所有其他站之间的最短时间。我的程序运行,但是当我输入我的起点和终点时,我得到了这些错误:
我明白错误是什么,我只是不确定它发生在哪里。
System.ArgumentOutOfRangeException
mscorlib.dll
类型的未处理异常
其他信息:
Index was out of range. Must be non-negative and less than the size of the collection.
我不想用大量的代码轰炸所有人......所以我在链接到我所拥有的Dropbox位置:https://www.dropbox.com/sh/z7an3eho1lkm1h9/_0bm5taT31
再一次,如果我错过了一条规则并且我打破它,我很抱歉。如果我是,请告诉我,我会尝试以适当的方式重新发布问题。
答案 0 :(得分:1)
使用Visual Studio,您可以告诉调试器在抛出异常时中断:
http://msdn.microsoft.com/en-us/library/d14azbfh.aspx
使用这种技术,您应该能够找到根本原因。
答案 1 :(得分:0)
您必须在代码中添加两个条件,如下所述。
if(Subway.Count>0)
shortest.Add(Subway[s2]);
int mins=0;
if(Subway.Count>0)
mins = Subway[s2].cost;
你的地铁列表是空的,你仍然发现它的项目显示它将通过例外。