C#“索引超出了数组的范围。” 用于一个数组,而不是另一个数组

GTe*_*lov 1 c# indexing bounds

我有2个数组,用于存储用户的2系列输入。我将两个数组的边界都设置为等于相同的变量,但是在输入信息时,在第一个数组的最终输入之后,我得到一个异常“索引超出了数组的边界”。

当我尝试将数组的范围更改为常数时,它们的行为正常。

            string[] names = new string[movies-1];
            double[] ratings = new double[movies-1];
            for(int i = 0; i < movies; i++)
            {
                names[i] = Console.ReadLine();
                ratings[i] = Convert.ToDouble(Console.ReadLine());
            }
Run Code Online (Sandbox Code Playgroud)

System.IndexOutOfRangeException:'索引在数组的边界之外。

小智 5

您只差一两次(两次)-

  1. 数组应实例化为,长度为movies,而不是 movies-1

  2. 迭代时,您最多希望i等于movies-1,因为数组分配从0开始。

考虑一下-如果movies等于1(一部电影),则当前正在实例化具有0个插槽的数组-您尝试访问的任何索引都将超出范围。