如何将CSV文件读取到List<;myClass>

本文关键字:lt myClass gt List CSV 文件 读取 | 更新日期: 2023-09-27 18:00:55

是否可以从CSV文件创建自己类的列表?

文件例如看起来像:

ID;NAME
1;Foo
2;Bar

然后我有一个类:

class MyClass
{
    public int id { get; set; }
    public string name { get; set; }
}

有可能从cvs文件中生成这个类的列表吗?可能有一些库

如何将CSV文件读取到List<;myClass>

您可以使用CSV解析器,如FileHelpers或FastCSV。如果你不想使用第三方库,你可以看看内置的TextFieldParser类,它可以这样使用:

public IEnumerable<MyClass> Parse(string path)
{
    using (TextFieldParser parser = new TextFieldParser(path))
    {
        parser.CommentTokens = new string[] { "#" };
        parser.SetDelimiters(new string[] { ";" });
        parser.HasFieldsEnclosedInQuotes = true;
        // Skip over header line.
        parser.ReadLine();
        while (!parser.EndOfData)
        {
            string[] fields = parser.ReadFields();
            yield return new MyClass()
            {
                id = fields[0],
                name = fields[1]
            };
        }
    }
}

然后:

List<MyClass> list = Parse("data.csv").ToList();

但是永远不要,请never roll your own CSV parser因为其他人建议您在这里回答您的问题。