CSV ファイルから自分のクラスのリストを作成することは可能ですか?
ファイルは次のようになります。
ID;NAME
1;Foo
2;Bar
次に、次のようなクラスがあります。
class MyClass
{
public int id { get; set; }
public string name { get; set; }
}
cvs ファイルからこのクラスのリストを生成することは可能ですか? 多分いくつかのライブラリで
CSV ファイルから自分のクラスのリストを作成することは可能ですか?
ファイルは次のようになります。
ID;NAME
1;Foo
2;Bar
次に、次のようなクラスがあります。
class MyClass
{
public int id { get; set; }
public string name { get; set; }
}
cvs ファイルからこのクラスのリストを生成することは可能ですか? 多分いくつかのライブラリで
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