Supongamos que tengo la siguiente definición de registro de FileHelpers:
[DelimitedRecord(",")] [IgnoreEmptyLines] public class TestRecord { [FieldCaption("A")] [FieldQuoted(QuoteMode.OptionalForBoth)] public string A; [FieldCaption("B")] [FieldQuoted(QuoteMode.OptionalForBoth)] public string B; [FieldCaption("C")] [FieldQuoted(QuoteMode.OptionalForBoth)] public string C; }Solo me interesan las columnas A,B,C. Cualquier columna que les siga puede ser ignorada. Entonces, por ejemplo, me gustaría que fuera posible manejar datos como este:
A,B,C,D,E TestA1,TestB1,TestC1,TestD1,TestE1 TestA2,TestB1,TestC1,TestD1,TestE1o:
A,B,C,D TestA1,TestB1,TestC1,TestD1 TestA2,TestB1,TestC1,TestD1o:
A,B,C TestA1,TestB1,TestC1 TestA2,TestB1,TestC1Simplemente agregue un campo de string[] al final de su clase y [FieldOptional] .
[DelimitedRecord(",")] [IgnoreEmptyLines] public class TestRecord { [FieldCaption("A")] [FieldQuoted(QuoteMode.OptionalForBoth)] public string A; [FieldCaption("B")] [FieldQuoted(QuoteMode.OptionalForBoth)] public string B; [FieldCaption("C")] [FieldQuoted(QuoteMode.OptionalForBoth)] public string C; [FieldOptional] public string[] EverythingElse; } class Program { static void Main(string[] args) { var engine = new FileHelperEngine<TestRecord>(); var records = engine.ReadString("TestA1,TestB1,TestC1,TestD1,TestE1"); Debug.Assert(records.Count() == 1); Debug.Assert(records[0].A == "TestA1"); Debug.Assert(records[0].B == "TestB1"); Debug.Assert(records[0].C == "TestC1"); Console.WriteLine("All OK"); Console.ReadLine(); } }