2008-11-04 69 views
4

我一直在尋找一種方法來讓我的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 h4; 
} 

值H1-H4真的會更有意義,因爲簡單地稱爲「H」的數組。它會使處理文件變得更容易一些。 我也知道我正在閱讀的文件將始終包含這些字段。

有沒有人想出了一種在您的FileHelper映射類中包含數組的方法?

回答

0

我不知道有關該工具的任何問題,但(假設它不是工具的限制)我真的懷疑公有領域的智慧。屬性也將讓您有機會到墊片的值:

[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;} 
1

FileHelpers記錄類需要公共領域。記錄類不應該被認爲是一個正常的C#類,它應該遵循最佳編碼實踐;相反,它只是一個描述導入文件結構的語法。

使用FileHelpers建議的過程是循環遍歷生成的Example[]數組,並將需要的字段映射到更普通的類(使​​用屬性而不是公用字段)。此時,您可以將您的H1-H4值複製到數組屬性中。