[英]Read multiple lines and split on space c# console application
我有这个用户输入:
第一行:1 2 第二行:0 1 1 第三行:1 0 0
使用下面的代码,我设法读取了所有行并将它们存储到列表中,在最后一点代码中,我想要做的是存储整数类型 Int32 之类的值,谁能告诉我更好的方法来做到这一点手术?
List<string> lines = new List<string>();
string line;
int count = -2;
int totCount = 0;
while (count<=totCount)
{
line = Console.ReadLine();
lines.Add(line);
count++;
}
var line1 = lines[0];
var line2 = lines[1];
var line3 = lines[2];
string[] ee = line1.Split(new char[] { ' ' }, StringSplitOptions.None);
int c = Int32.Parse(ee[1]);
...
如果我理解你的意思并且你想输入一个集合List<int[]>
,让我们提取一个方法:
private static IEnumerable<int[]> ReadData() {
while (true) {
Console.WriteLine("Next line of integers or q for quit");
string input = Console.ReadLine().Trim();
if (input == "q")
break;
yield return input
.Split(new char[] {' ', '\t'}, StringSplitOptions.RemoveEmptyEntries)
.Select(item => int.Parse(item)) // int.TryParse will be better
.ToArray();
}
}
然后你可以放
List<int[]> trainInfo = ReadData().ToList();
public struct Data
{
public Data(int intValue)
{
IntData = intValue;
}
public int IntData { get; private set; }
}
var list = new List<Data>();
list.Add(new Data(123));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.