【发布时间】:2014-11-08 07:03:01
【问题描述】:
我在一个项目中遇到异常“System.IndexOutOfRangeException”,并在此处隔离到此示例代码块中。
using System;
public class Program
{
public static void Main()
{
string testStr = "AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7";
//split testStr into substrings representing each edge
string [] edges = testStr.Split(", ".ToCharArray());
foreach(string edge in edges)
{
Console.Write(edge + "\n");
char [] cEdge = edge.ToCharArray();
char cost = cEdge[cEdge.Length - 1]; // what out of bounds?
Console.Write(cost);
}
}
}
这个问题来自“char cost = cEdge[cEdge.Length - 1];”这一行。这对我来说毫无意义,因为此时 cEdge 应该是一个长度为 3 的数组。所以在 cEdge.Length - 1 处的索引应该是 2 的索引并且在数组的范围内。我很困惑,也许我看过一些东西。感谢您的时间和帮助。
【问题讨论】:
-
如果 cEdge 的长度为零,那么
cEdge[cEdge.Length-1]将生成越界异常。