目前在c#中我有一个文本文件中每一行的字符串列表。 在此文件中,有以逗号分隔的字段。
string[] logFile = File.ReadAllLines(path);
List<string> logList = new List<string>(logFile);
我真的不知道我需要做什么才能分别获得每个字段,记住该字段中字段的顺序很重要。
以下是文件
中的行的示例406,14A,392D
1,IAW,A,,A,0.972177,0,0,-32767,32767,600.0,1,P
2,IBW,B,,A,0.972177,0,0,-32767,32767,600.0,1,P
3,ICW,C,,A,0.972177,0,0,-32767,32767,600.0,1,P
所以我想要的是获取每个字段以将其保存到适当的变量
感谢您的帮助。
答案 0 :(得分:2)
您可以遍历这些行并使用String.Split拆分单独字段中的每一行
foreach(var field in logList)
{
string [] allFieldsInLine = field.Split(',');
}
allFieldsInLine
中的订单与您的订单中的订单相同。
在这一行:
1,IAW,A ,, A,0.972177,0,0,-32767,32767,600.0,1,P
IAW
将在allFieldsInLine[1]
allFieldsInLine[3]
的将为""
或String.Empty
答案 1 :(得分:0)
我将创建一个Object类,接受12个不同的参数(类型为string),然后将它们添加到List(Input)inputList中,而不是使用List(String)。以下是一些仅包含2个参数的示例代码。在您自己的程序中尝试并实现它。
创建对象类:
class Input
{
private string thing1;
private string thing2;
public Input(string thing1, string thing2)
{
this.thing1 = thing1;
this.thing2 = thing2;
}
public string Thing1 { get => thing1; set => thing1 = value; }
public string Thing2 { get => thing2; set => thing2 = value; }
}
现在您已经创建了对象,您可以创建此对象的列表。
List<Input> inputList = new List<Input>();
最后,当您阅读文本文件时,您可以创建一个按顺序包含每个值的Object,并将它们添加到inputList。
StreamReader reader = new StreamReader(text file);
string line;
while ((line = reader.ReadLine()) != null)
{
string[] useThis = line.Split(',');
inputList.Add(new Input(useThis[0], useThis[1]);
}
现在,只要您想引用这些值,就可以使用foreach循环遍历列表或使用
调用它。inputList.ElementAt[#].thing2
希望这有帮助!