处理具有一维的数组非常简单。但是我们如何避免在每行(锯齿形阵列)上以不同长度的二维数组内测试超出范围的位置呢?如何测试二维数组的边界,以避免indexOutOfRangeException(C#)
这里是我的代码(如果有人想测试):
static void Main(string[] args)
{
object[][] x = weirdReturn();
int k = 0;
while(x[0][k] != null) //THIS CODE PRODUCES THE EXCEPTION
{
for(int i = 0; i< x[k].Length; i++)
{
Console.Write("{0} ", x[k][i]);
}
Console.WriteLine("");
k++;
}
}
static object[][] weirdReturn()
{
DateTime d = new DateTime();
d = DateTime.Now;
object[] a2 = { 'X', 1.79, d, 100 };
object[] a1 = { 0, 'a', "objectX" };
object[][] retVal = new object[2][];
retVal[0] = a1;
retVal[1] = a2;
return retVal;
}
你的循环完全是无稽之谈。你想做什么? –
我应该更好地描述这个问题。最初我想把它放到现有的线程中。我想迭代在一个锯齿状的数组。一种矩阵,但具有不同长度的行。问题是我无法轻松找到有多少行。我知道在这种情况下有2个,但我想将这个问题推广到更好的灵活性。 –
'行数'是外部数组的长度,你可以通过调用'x.Length'来获得长度。 –