簡體   English   中英

當映射到字符串屬性時,Csv Helper Fluent類映射會向int字段添加前導零

[英]Csv Helper Fluent Class Mapping adds a leading zero to int field when mapped to string property

我有一個名為TimeClockCode的字符串屬性。 哪個映射到csv文件的索引(0)。 Index(0)包含整數,例如11565.但是在映射到字符串TimeClockCode之后,

像這樣: Map(p => p.TimeclockCode).Index(0);

或者像這樣: Map(p => p.TimeclockCode).ConvertUsing(row => row.GetField<string>(0));

兩者都導致字符串011565。

我通過將其作為int讀取並在其上調用toString來解決這個問題。

Map(p => p.TimeclockCode).ConvertUsing(row => row.GetField<int>(0).ToString()); 這給了我11565的預期結果。

我是否遺漏了一些關於流暢映射的實現? 領先的零來自哪里?

我無法復制你的問題。 我用過這段代碼:

static void Main(string[] args)
{
    var s = "\"11565\",\"a\",\"012\",\"4.5\",\"01\",\"555\"\r\n";
    using (var sr = new StringReader(s))
    {
        var csv = new CsvReader(sr);
        csv.Configuration.HasHeaderRecord = false;
        csv.Configuration.RegisterClassMap<MyClassMap>();
        while (csv.Read())
        {
            var record = csv.GetRecord<MyClass>();

        }
    }
}

public class MyClass
{
    public string Test { get; set; }
    public string TimeclockCode { get; set; }
}

public sealed class MyClassMap : CsvClassMap<MyClass>
{
    public MyClassMap()
    {
        Map(p => p.TimeclockCode).Index(0);
        Map(p => p.Test).Index(2);
    }
}

我只能假設CSV中的值是011565,或者您還有一些其他問題,這些問題在問題文本中並不明顯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM