0

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

该文件例如看起来像:

ID;NAME
1;Foo
2;Bar

然后我有一个像这样的课程:

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

是否可以从 cvs 文件中生成此类的列表?也许有一些图书馆

4

1 回答 1

4

您可以使用 CSV 解析器,例如FileHelpersFastCSV 。如果您不想使用第三方库,可以查看可以这样使用的内置类: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像其他人在这里建议的那样回答您的问题。

于 2013-02-24T16:05:45.593 回答