【发布时间】:2021-12-30 16:15:49
【问题描述】:
我刚开始使用CsvReader,而且进展顺利。
我的对象目前有这些字段:
public class CLMExplorerStudent
{
[Name("Student ID")]
public int Id { get; set; }
[Name("Last Name")]
public string LastName { get; set; }
[Name("First Name")]
public string FirstName { get; set; }
[Name("Gender")]
public string Gender { get; set; }
[Name("Active")]
public string Active { get; set; }
[Name("Role")]
public string Role { get; set; }
[Name("Use For")]
public string UseFor { get; set; }
[Name("Use Where")]
public string UseWhere { get; set; }
[Name("Email Address")]
public string EmailAddress { get; set; }
[Name("Phone #")]
public string PhoneNumber { get; set; }
[Name("Remarks")]
public string Remarks { get; set; }
}
Active 字段在 CSV 文件中的值为 Y 或 N。是否可以映射它以便我的类中的属性可以是bool 属性?
我正在使用标准方法读取 CSV 文件:
using (var reader = new StreamReader(strPath))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords<CLMExplorerStudent>();
}
我显然知道我可以简单地针对Y 或N 测试该值,但我更愿意读入bool 属性。
我只需要从 CSV 文件中读入而不是写出它。
【问题讨论】:
-
这能回答你的问题吗? Adding custom field attributes to CsvHelper
-
@MathiasR.Jessen 所以我必须使用 convertor 或某种映射到
bool? -
没错!我在下面发布了一个示例