4

非常に簡単だと確信していますが、CSVHelper を使用して配列をファイルに書き込む方法を理解するのに苦労しています。

たとえば、クラスがあります

public class Test
{
public Test()
{
data = new float[]{0,1,2,3,4};
}
 public float[] data{get;set;}
}

各配列値を個別のセルに書き込んでデータを書きたいと思います。下にカスタム コンバーターがあり、代わりに 1 つのセルにすべての値が含まれています。

私は何を間違っていますか?

public class DataArrayConverter<T> : ITypeConverter
{
    public string ConvertToString(TypeConverterOptions options, object value)
    {
        var data = (T[])value;

       var s = string.Join(",", data);

    }

    public object ConvertFromString(TypeConverterOptions options, string text)
    {
        throw new NotImplementedException();
    }

    public bool CanConvertFrom(Type type)
    {
        return type == typeof(string);
    }

    public bool CanConvertTo(Type type)
    {
        return type == typeof(string);
    }
}
4

2 に答える 2

3

残念ながら、そのようには機能しません。コンバーターに戻っ,ているため、単一フィールドの一部であるため、フィールドを引用します。

現在、あなたが望むことを達成する唯一の方法は手動で書くことですが、これはそれほど恐ろしいことではありません。

foreach( var test in list )
{
    foreach( var item in test.Data )
    {
        csvWriter.WriteField( item );
    }

    csvWriter.NextRecord();
}

アップデート

バージョン 3 では、IEnumerable プロパティの読み取りと書き込みがサポートされています。

于 2014-10-01T21:35:23.680 に答える