首页 > 解决方案 > 无法将字符串数组的类型“int”隐式转换为“string”

问题描述

我正在尝试为我的编码课做作业,我对此很陌生。我的班级希望有人从用户输入中将 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 值,但它不允许我这样做。有什么理由吗?请让我知道并理解我对此真的很陌生。

标签: c#stringinteger

解决方案


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

int[] numbers = new int[6];

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

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

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

推荐阅读