C# 在FileHelpers映射类中使用数组

C# 在FileHelpers映射类中使用数组,c#,.net,csv,filehelpers,C#,.net,Csv,Filehelpers,我一直在寻找一种方法,允许FileHelpers映射类的一个元素成为特定长度的数组 例如,我有一个这样的类: [DelimitedRecord(",")] public class Example { public string code; public int month; public int day; public double h1; public double h2; public double h3; public double

我一直在寻找一种方法,允许FileHelpers映射类的一个元素成为特定长度的数组

例如,我有一个这样的类:

[DelimitedRecord(",")]
public class Example
{
    public string code;
    public int month;
    public int day;
    public double h1;
    public double h2;
    public double h3;
    public double h4;
}
h1-h4的值对于一个简单称为“h”的数组来说更有意义。这也会使处理文件变得更容易一些。 我还知道,我正在读取的文件中总是有这些字段,而且只有这些字段


有人想出了在FileHelper映射类中包含数组的方法吗?

我对这个工具一无所知,但是(假设它不是该工具的限制)我真的怀疑公共字段的智慧。属性还可以为您提供填充值的机会:

[DelimitedRecord(",")]
public class Example
{
    public string Code {get;set;}
    public int Month {get;set;}
    public int Day {get;set;}

    private readonly double[] h = new double[4];

    public double H1 {get {return h[0];} set {h[0] = value;}}
    public double H2 {get {return h[1];} set {h[1] = value;}}
    public double H3 {get {return h[2];} set {h[2] = value;}}
    public double H4 {get {return h[3];} set {h[3] = value;}}
}
同样,我不知道该工具是否支持这一点,但这将是一种可行的实现方式。当然,“h”值与直接成员一样好(实际上,效率稍高一些——堆上没有数组,也没有反引用):

    public double H1 {get;set;}
    public double H2 {get;set;}
    public double H3 {get;set;}
    public double H4 {get;set;}

FileHelper记录类需要公共字段。记录类不应被视为应遵循最佳编码实践的普通C#类;相反,它只是描述导入文件结构的语法

使用FileHelpers的建议步骤是循环遍历生成的
示例[]
数组,并将所需字段映射到更普通的类(使用属性而不是公共字段)。此时,您可以将H1-H4值复制到数组属性