Я пытаюсь использовать 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". Прямо сейчас я не знаю, как получить данные. Я знаю, что не могу просто сделать что-то вроде
результат [0] .SomeFieldName, поскольку fieldName может меняться от запуска к запуску. Так что это также заставляет меня задаться вопросом, почему это делает класс в первую очередь, если я собираюсь сделать что-то вроде получения по индексу или что-то еще.
Как вы можете видеть прямо сейчас, я очень смущен.