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
,知道最后一个索引。
更多在这里 。