如何获取字符串中的字段列表c#

时间:2017-08-04 14:10:48

标签: c# list

目前在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

所以我想要的是获取每个字段以将其保存到适当的变量

感谢您的帮助。

2 个答案:

答案 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

希望这有帮助!