C#用户输入int到数组

Voi*_*oix 1 c# arrays loops for-loop

我要求用户输入5个数字并将其存储到一个数组中,这样我就可以在一个方法中发送值并从每个数组中减去5个数字.当我使用:

for(I=0;I<5;I++) {
int[] val = Console.ReadLine();}
Run Code Online (Sandbox Code Playgroud)

它说我无法将int []转换为int.我的编程中有点生疏.我也不知道如何将数组值从main发送到方法.

fur*_*kle 6

您将从控制台输入的字符串分配给int数组.这有两个原因:

  1. intarrays(int[])是一个集合ints.
  2. 您从控制台获得的值不是int,需要先解析.

这是一个轻微的转移,但我也不认为你应该使用数组.数组中的数组通常具有比内置功能少得多的功能List<T>.(所有的摇滚歌曲都在这里响起)有人说完全没有理由使用数组 - 我不会那么远,但我认为对于这个用例,只需添加项目就可以轻松List实现分配5个空格并按索引初始化值.

无论哪种方式,你应该使用int.TryParse(),而不是int.Parse(),如果你不检查用户输入是否可解析,你应该立即得到一个例外int.因此,从用户接收字符串的示例代码如下所示:

List<int> userInts = new List<int>();

for (int i = 0; i < 5; i++)
{
    string userValue = Console.ReadLine();
    int userInt;
    if (int.TryParse(userValue, out userInt))
    {
        userInts.Add(userInt);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您仍然想使用该阵列,或者如果您需要,只需将List<int> userInts... 替换为int[] userInts = new int[5];,并替换userInts.Add(userInt)userInts[i] = userInt;.