如何在C#中以合理的方式从Console和Parse读取非常长的字符串?

时间:2014-02-12 09:05:04

标签: c# string

我想从Console读取一个非常长的字符串,并解析为C#中的intergers。有什么好办法吗?

输入如下: 202 203 204 .. 202

它包含1000个数字。我需要输入的az数组整数。

我知道这个例子:

StringBuilder sb =new StringBuilder();
while (true) {
    char ch = Convert.ToChar(Console.Read());
    sb.Append(ch);
    if (ch=='\n') {
        break;
    }
}

但有更快的方法吗?也许使用Readline()读取循环中的空格分隔符?

提前致谢

4 个答案:

答案 0 :(得分:5)

var array = Console.ReadLine().Split().Select(int.Parse).ToArray();

答案 1 :(得分:1)

这实际上取决于你想对无效条目做些什么。

var numbers = Console.ReadLine().Split(' ')
                               .Where(x => { int i; return int.TryParse(x, out i);})
                               .Select(int.Parse).ToArray();

这将跳过非整数的条目

答案 2 :(得分:1)

使用以下代码:

var arr = Console.ReadLine().Split(' ').Select(p=>int.Parse(p) ).ToArray();

答案 3 :(得分:0)

这可以给你你想要的东西

List<int> inputs = new List<int>();
foreach(string o in inputText.Split(' '));//space character
{
    bool correct = false;
    //add some controls for the control if the input is correct integer
    ...
    if(correct)
        inputs.Add(Convert.ToInt32(o));
}