从同一行读取数组元素(C#)

时间:2015-09-22 05:07:51

标签: c# arrays console

是否可以在 C#中从同一行(来自控制台)读取数组的元素?我知道可以从控制台读取多个输入,并使用Split()将各个部分存储在不同的变量中。但是我无法理解如何在数组中做到这一点。

代码

for (int i = 0; i < arrival.Length; i++)
{
     arrival[i] = int.Parse(Console.ReadLine());

}

例如,我必须在数组中输入元素34 35 36 37。如果我使用上面提到的代码,我必须在一个单独的行中输入每个元素。但我需要的是,如果我在控制台中输入34 35 36 37,它必须将每个数字存储为数组中的元素。怎么做?

3 个答案:

答案 0 :(得分:1)

您可以按以下方式对整数类型

的数组执行此操作
string readLine=Console.ReadLine());
string[] stringArray=readLine.split(' ');
int[] intArray = new int[stringArray.Length];
for(int i = 0;i < stringArray.Length;i++)
{
// Note that this is assuming valid input
// If you want to check then add a try/catch 
// and another index for the numbers if to continue adding the others
    intArray[i] = int.parse(stringArray[i]);
}

答案 1 :(得分:0)

我不清楚问题,可能你正在寻找这个 使用System;

class Program
{
    static void Main()
    {
    string s = "there is a cat";
    // Split string on spaces.
    // ... This will separate all the words.
    string[] words = s.Split(' ');
    foreach (string word in words)
    {
        Console.WriteLine(word);
    }
    }
}

输出

there
is
a
cat

参考链接 - http://www.dotnetperls.com/split

答案 2 :(得分:0)

你需要从控制台读取,拆分输入字符串,将拆分的字符串转换为你的类型(这里加倍),然后将它们添加到你自己的数组中:

这是代码做你想要的:

using System;
using System.Collections.Generic;
using System.Linq;

namespace test4
{
class Program
{
    static void Main(string[] args)
    {
        List<double> arrayOfDouble = new List<double>(); // the array to insert into from console

        string strData = Console.ReadLine(); // the data, exmple: 123.32, 125, 78, 10
        string[] splittedStrData = strData.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
        // trim then parse to souble, then convert to double list
        List<double> dataArrayAsDouble = splittedStrData.Select((s) => { return double.Parse(s.Trim()); }).ToList();

        // add the read array to your array
        arrayOfDouble.AddRange(dataArrayAsDouble);
    }
}
}