C# 'Index was outside the bounds of the array.' 用于一个数组而不是另一个

标签 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());
            }

System.IndexOutOfRangeException:“索引超出数组范围。”

最佳答案

你只差一(两次)-

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

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

    <

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

关于C# 'Index was outside the bounds of the array.' 用于一个数组而不是另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58676406/

相关文章:

c# - 验证解决方案项目之间没有文件引用

Swift 4 字符串索引在处理大字符串时偏移太慢

javascript - 如何解释 float 组索引?

python - 元组索引、组合切片和索引

java - 在 java 中获取字符串大小(没有可用的 Graphics 对象)

c# - Json.Net 未正确序列化版本类型

c# - 如何暂时排除属性(property)被保存到 RavenDb?

c# - Windows Phone 8.1 中的警报代码

java - Java 游戏的碰撞问题

ios - 什么是 viewDidLayoutSubviews?