filehelpersクラスビルダーを使用しようとしていますが、それをどうするかについて少し混乱しています。
var cb = new DelimitedClassBuilder("temp", ",") { IgnoreFirstLines = 0, IgnoreEmptyLines = true, Delimiter = "," };
var sr = new StreamReader(stream);
var headerArray = sr.ReadLine().Split(',');
foreach (var header in headerArray)
{
var fieldName = header.Replace("\"", "").Replace(" ", "");
cb.AddField(fieldName, typeof(string));
}
var engine = new FileHelperEngine(cb.CreateRecordClass());
var result = engine.ReadStream(sr);
DelimitedClassBuilderは、最初のパラメーターとして「className」、次に「delimiter」を取り込みます。
//
// Summary:
// Creates a new DelimitedClassBuilder.
//
// Parameters:
// className:
// The valid class name.
//
// delimiter:
// The delimiter for that class.
public DelimitedClassBuilder(string className, string delimiter);
次に、この「クラス」のfieldNamesとして後で使用するヘッダーを含むストリームの最初の行を調べます。
最後の行は、残りのすべての情報を読み取り、それをオブジェクト配列[]として返します。その中には「temp」クラスのものがあります。
それでも、実際にそれをクラス「temp」にキャストする方法はわかりません。今のところ、データを取得する方法がよくわかりません。私は私がただのようなことをすることができないことを知っています
result [0] .SomeFieldNameは、fieldNameが実行ごとに変わる可能性があるためです。ですから、これはまた、インデックスなどで取得するようなことをしなければならないのに、そもそもなぜクラスになるのか不思議に思います。
ご覧のとおり、私は非常に混乱しています。