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

FileHelpersまたはFastCSVなどの CSV パーサーを使用できます。サードパーティのライブラリを使用したくない場合は、次のよう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 に答える