[.net] FileHelpersとCSV:レコードを無制限に、水平方向に展開できるとき


Answers

すべての潜在的な値を保持するクラスMyRecordを作成することができます。

[DelimitedRecord(",")]
public class MyRecord
{
    public string Name;
    public int Value1;
    .....
    [FieldOptional]
    public int Value5;
    ......
    [FieldOptional]
    [FieldNullValue(typeof(int), "-1" )]
    public int Value14;
}

それらのフィールドのほとんどをオプションにして(例えば、私の例では5番から14番まで)、 FieldNullValueなどと組み合わせてそれらの存在しないフィールドを処理します。

 public int? Value5
Question

私はFileHelpersでこのタイプのCSVファイルを解析しようとしています:

Tom,1,2,3,4,5,6,7,8,9,10
Steve,1,2,3
Bob,1,2,3,4,5,6
Cthulhu,1,2,3,4,5
Greg,1,2,3,4,5,6,7,8,9,10,11,12,13,14

私はFileHelpersでこれを解析する方法を理解できません。 私はこのようなことができるはずだと思います。

[DelimitedRecord(",")]
public class MyRecord
{
    public string Name;

    public List<int> Values;
}

しかし、それはFileHelpersでは可能ではないようです。 私がすることができる最高のことはこれです:

[DelimitedRecord(",")]
public class MyRecord
{
    public string Name;

    public string Values;

    public string[] ActualValuesInNiceArray
    {
        get { return Values.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries); }
    }
}

次に、各レコードの値のセットを取得するために、 Valuesをカンマで分割する必要があります。 私は手動で各レコードの一部を解析する必要がある場合FileHelpersを使用する点の多くのようには思われません。

何か不足していますか? 私はdocs / examplesに行きましたが、私のフォーマットの解決策を見つけることができません。 Excelは私のフォーマットに問題がないので、既存の無料ライブラリ(FileHelpersやその他のライブラリ)を使ってExcelを実行する方法があると思います。 何か案は?






Links