从列表中获取相同的发票<list <string>&gt;

时间:2015-10-27 06:57:22

标签: c#

我将为我母亲的发票创建CSV导入,因此我创建了一个读取CSV文件的界面,对于CSV中的每一行,List<List<string>>.现在的值是以下问题:

ABC; 1300; Customer 1; Product1; Product Description; 0; 0; 0
ABC; 1300; Customer 1; Product2; Product Description; 1; 2; 0

第二个值是发票号,4-5个值是发票“行”。 我真的不知道如何解决这个问题,所有与第二行相同的行都通过相同的文件。也许你可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

按照这个答案,它应该解决你的问题

class invoice
{
    public String field0, field2, field3, field4;
    public int field1, field5, field6, field7;
}

private void Form1_Load(object sender, EventArgs e)
{
    List<invoice> invoiceList = new List<invoice>();
    var reader = new StreamReader(File.OpenRead("invoice.csv"));
    while (!reader.EndOfStream)
    {
        String line = reader.ReadLine();
        String[] values = line.Split(';');

        invoice inv = new invoice();
        inv.field0 = values[0];
        inv.field1 = int.Parse(values[1]);
        inv.field2 = values[2];
        inv.field3 = values[3];
        inv.field4 = values[4];
        inv.field5 = int.Parse(values[5]);
        inv.field6 = int.Parse(values[6]);
        inv.field7 = int.Parse(values[7]);
        invoiceList.Add(inv);
    }
    reader.Close();
}

只需根据你的标题更改变量名称,下次请做HW :)说实话,我的答案只是因为你帮助你的妈妈

顺便说一句,CSV文件中的字段由,而不是;分隔(CSV = C omma S eparated V < / strong> alues),请参阅this