3

ライブラリCsvHelperを使用して CSV を記述します。すべてのレコードが含まれていないオブジェクトがあり、CSV に空のフィールドを追加する必要があります。例えば:

public class Example
{
   public string Test1 { get; set; }
   public string Test2 { get; set; }
}

このマップで:

public class ExampleMap : ClassMap<Example>
{
    public ExampleMap()
    {
      Map(ex=>ex.Test1).Index(0);
      Map(ex=>ex.Test2).Index(4);
    }
}

そして、私はこのオブジェクトのために持っていたい

new Example() { Test1="dummy", Test2="field" };

この csv 結果:

dummy;;;field

誰かが私を助けることができれば、私は本当にこの問題に苦労しています:)どうもありがとう

4

4 に答える 4

0

間に明示的な列マッピングがあるという概念に違反しているようです。

CsvHelper ライブラリは、定義された列マッピング(「マップされた列」)に対して単純にインデックスを昇順で使用するため、このようなシナリオをサポートしていないようです。

ただし、そのような出力が本当に必要な場合は、「未使用」(予約済み) 列を次のように導入できます。

internal sealed class Example
{
    public string Test1 { get; set; }
    public string Test2 { get; set; }

    public string Reserved1 { get; set; }
    public string Reserved2 { get; set; }
}

internal sealed class ExampleMap : CsvClassMap<Example>
{
    public ExampleMap()
    {
        Map(ex => ex.Test1).Index(0);
        Map(ex => ex.Reserved1).Index(1);
        Map(ex => ex.Reserved2).Index(2);
        Map(ex => ex.Test2).Index(3);
    }
}
于 2014-09-11T20:01:11.837 に答える
0

最終的に、各行の最終的なcsv文字列を直接編集することを選択しました...動作しますが、醜いです!

于 2014-09-11T22:44:42.790 に答える