C#二维数组访问抛出IndexOutOfRangeException

时间:2013-09-03 13:18:36

标签: c# arrays excel

我有一个二维对象数组,我想读它。该程序始终抛出IndexOutOfRange异常。

以下是代码:

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

那到底是怎么回事?!有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Excel使用1作为其尺寸的起始索引。通常,如果要搜索未知数组的第一个元素的索引:

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

GetUpperBound执行同样的操作以了解最后一个索引。

更多here