我有此用户输入:
第一行: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]);
...
答案 0 :(得分:3)
如果我对您的理解正确,并且您想输入一个集合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();
答案 1 :(得分:-1)
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));