C#二维数组访问抛出IndexOutOfRangeException

我有一个二维的对象数组,我想读它。 该程序总是抛出一个IndexOutOfRangeexception。

这里是代码:

Excel.Range range = activeWorksheet.UsedRange; MessageBox.Show(range.Value2.GetType().toString()); // output: System.Object[,] object[,] values = (object[,])range.Value2; MessageBox.Show("l0="+values.GetLength(0)); // output: 1483 MessageBox.Show("l1"+values.GetLength(1)); // output: 221 MessageBox.Show(values.GetValue(0, 0).ToString()); // -> throws IndexOutOfRangeException 

这到底是怎么回事?! 有任何想法吗?

Excel使用1作为其维度的起始索引。 一般来说,如果你想search未知数组的第一个元素的索引:

 int startXIndex = values.GetLowerBound(0); // 0 based dimension int startYIndex = values.GetLowerBound(1); 

GetUpperBound ,知道最后一个索引。

更多在这里 。