處理具有一維的數組非常簡單。但是我們如何避免在每行(鋸齒形陣列)上以不同長度的二維數組內測試超出範圍的位置呢?如何測試二維數組的邊界,以避免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'來獲得長度。 –