如何将多个值从用户存储到特定大小的数组?

时间:2017-04-26 00:20:19

标签: c# arrays input

我正在尝试从用户获取值并将其存储在特定大小的数组中。我的代码看起来像

int n = int.parse(Console.ReadLine());
string[] samples = Console.ReadLine().Split(' ');
int[] scores = Array.ConvertAll(samples, Int32.Parse);

以上代码有效,但在获得n输入后不会停止,并允许我在n输入后存储值。如何在n输入后停止获取输入,并且我希望在单个空格分隔线中获取所有输入。例如:

9
1 2 3 4 5 6 7 8 9

我应该使用for循环来实现这个目标吗?

1 个答案:

答案 0 :(得分:3)

  

如何在n次输入后停止输入

意思是什么?究竟?根据代码,您似乎需要在一行上的所有输入,以空格分隔。您可以忽略n之外的所有输入,如下所示:

string[] samples = Console.ReadLine().Split(' ').Take(n).ToArray();

如果这不是您想要的,请改进问题,以便更准确地了解您所尝试的内容,您现在所拥有的代码以及您希望它的内容改为做。

请注意,其他替代方案包括:

  • 要求用户在每一行输入单独的号码。在这种情况下,您可以按照a comment中的建议进行操作,并将数据条目(即对Console.ReadLine()的调用)放入循环中。例如:
string[] samples = new string[n];
for (int i = 0; i < n; i++)
{
    samples[i] = Console.ReadLine();
}
  • 一次处理用户输入一个键,一旦用户输入了所需数量的值,终止输入,无论空格,换行符等。这是一个更复杂的方法,所以我赢了#39因为目前看来没有必要,所以要为此编写一个代码示例。