无法将字符串数组的类型 'int' 隐式转换为 'string'

Cannot implicitly convert type 'int' to 'string' for a string array

我正在尝试为我的编码做一个作业 class,我对此很陌生。我的 class 希望有人从用户输入中将 5 个值输入到数组中。这些语句必须在 while 循环中。

这是我的代码

static void Main(string[] args)
        {
            string[] numbers = new string[6];
            int i = 1;
            while (i <= 5)
            {
                Console.Write("Please enter a number here:");
                numbers[i] = Convert.ToInt32(Console.ReadLine());
                i++;
            }

        

        }
    }
}

错误发生在

numbers[i] = Convert.ToInt32(Console.ReadLine());

我正在尝试将用户输入转换为 int 值,但它不允许。有什么理由吗?请让我知道并理解我对此很陌生。

这是因为你的数组的数据类型是类型 string 并且在你的用户输入中,你试图将它转换为 int 所以你肯定会遇到异常

由于您使用的是 "请在此处输入数字:" 在您的输出中,您可以将数组类型设为 int

  int[] numbers = new int[6];
  int i = 1;
  while (i <= 5)
  {
      Console.Write("Please enter a number here:");
      numbers[i] = Convert.ToInt32(Console.ReadLine());
      i++;
  }

您正在尝试将数据类型为字符串的输入转换为 int 数据类型。 将数字数组数据类型从字符串更改为整数。

int[] numbers = new int[6];

我还会通过 Int32.TryParse 添加检查以查看用户的输入是否确实是数字。

此函数将尝试将字符串(第一个参数)转换为其 32 位带符号整数表示形式的数字,并 returns 指示转换是否成功的布尔值。

 string value = Console.ReadLine();
 int number;
 bool success = Int32.TryParse(value, out number);
 if (success)
 {
    numbers.Add(number);
 }