C# 如何使FileHelper忽略定义列之后的列?(即忽略末尾的列)
假设我有以下FileHelpers记录定义:C# 如何使FileHelper忽略定义列之后的列?(即忽略末尾的列),c#,.net,csv,filehelpers,C#,.net,Csv,Filehelpers,假设我有以下FileHelpers记录定义: [DelimitedRecord(",")] [IgnoreEmptyLines] public class TestRecord { [FieldCaption("A")] [FieldQuoted(QuoteMode.OptionalForBoth)] public string A; [FieldCaption("B")] [FieldQuot
[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;
}
我只对A、B、C列感兴趣。它们后面的任何列都可以忽略。例如,我希望能够处理如下数据:
A,B,C,D,E
TestA1,TestB1,TestC1,TestD1,TestE1
TestA2,TestB1,TestC1,TestD1,TestE1
或:
或:
只需在类的末尾添加一个额外的
string[]
字段,并将其标记为[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();
}
}
[分隔符记录(“,”)]
[无知的人]
公共类测试记录
{
[现场字幕(“A”)]
[FieldQuoted(QuoteMode.OptionalForEarth)]
公共字符串A;
[现场字幕(“B”)]
[FieldQuoted(QuoteMode.OptionalForEarth)]
公共字符串B;
[字段标题(“C”)]
[FieldQuoted(QuoteMode.OptionalForEarth)]
公共字符串C;
[字段可选]
公共字符串[]其他所有内容;
}
班级计划
{
静态void Main(字符串[]参数)
{
var engine=new FileHelperEngine();
var records=engine.ReadString(“test1、TestB1、TestC1、TestD1、test1”);
Debug.Assert(records.Count()==1);
Assert(记录[0].A==“TestA1”);
Assert(记录[0].B==“TestB1”);
Assert(记录[0].C==“TestC1”);
Console.WriteLine(“一切正常”);
Console.ReadLine();
}
}
A,B,C
TestA1,TestB1,TestC1
TestA2,TestB1,TestC1
[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();
}
}