使用CsvHelper從 .Net 物件檔案撰寫 TSV 時,我想使用屬性控制列排序順序。使用 CsvHelper 提供的Index(..)屬性時,我可以控制序列化順序,但列標題帶有索引后綴:
模型,繼承:
/// <summary>
/// Generic daily data
/// </summary>
public class DailyData
{
/// <summary>
///
/// </summary>
[CsvHelper.Configuration.Attributes.Index(-2, -2)]
public int IdDay {get;set;}
}
/// <summary>
/// Generic hou-on-a-day data
/// </summary>
public class HourlyData : DailyData
{
/// <summary>
///
/// </summary>
[CsvHelper.Configuration.Attributes.Index(-1)]
public byte IdHour { get; set; }
}
/// <summary>
///
/// </summary>
public class HourlyWeatherInfo : HourlyData
{
/// <summary>
///
/// </summary>
public double Temperature { get; internal set; }
}
輸出:
IdDay1 IdHour1 Temperature
20220516 18 291.7
20220516 21 289.55
20220517 0 287.3
20220517 3 286.33
我對索引使用負數,因為我希望基類首先列出它們的屬性,而不必擔心派生類中的序列化順序(例如HourlyWeatherInfo.
我是否忽略了功能?
uj5u.com熱心網友回復:
感覺有點hacky,但這似乎有效。
/// <summary>
/// Generic daily data
/// </summary>
public class DailyData
{
/// <summary>
///
/// </summary>
[CsvHelper.Configuration.Attributes.Index(-2,-3)]
public int IdDay {get;set;}
}
/// <summary>
/// Generic hou-on-a-day data
/// </summary>
public class HourlyData : DailyData
{
/// <summary>
///
/// </summary>
[CsvHelper.Configuration.Attributes.Index(-1,-2)]
public byte IdHour { get; set; }
}
/// <summary>
///
/// </summary>
public class HourlyWeatherInfo : HourlyData
{
/// <summary>
///
/// </summary>
public double Temperature { get; internal set; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478342.html
上一篇:在CSV檔案中按日期搜索行
