为锯齿状数组赋值时的IndexOutOfRange异常

时间:2016-06-05 15:24:17

标签: c# arrays jagged-arrays leap-motion indexoutofrangeexception

我正在尝试将传感器值与锯齿状阵列中保存的值进行比较(26个保存的可能情况,5个手指,每个手指的3d矢量) 当我定义数组的值时,我可以设置gestures [0]的值而没有任何问题,但是一旦我开始定义手势[1], 我得到一个IndexOutOfRange异常。

另外,锯齿状阵列是否适用于此目的(3d矢量数组的数组)?

public class Signs
{
public static double[][][] gestures = new double[26][][];

    public void Define()
    {


        gestures[0] = new double[5][];
        gestures[0][0] = new double[3] { 0.15, 0.97, -0.21 };
        gestures[0][1] = new double[3] { -0.56, -0.81, -0.18 };
        //...
        gestures[0][5] = new double[3] {-0.21,0.44,0.2}



        gestures[1] = new double[5][]; //IndexOutOfRange exception
        gestures[1][0] = new double[3] { 0.21, 0.96, -0.21 };
        gestures[1][1] = new double[3] { 0.19, 0.96, 0.21 };
        //...

1 个答案:

答案 0 :(得分:2)

问题出在这一行

gestures[0][5] = new double[3] {-0.21,0.44,0.2}

您定义了一个长度为5(gestures[0] = new double[5][];

的数组

所以最大指数是4(0-4)