【问题标题】:CSVHelper how to map a string to objectCSVHelper 如何将字符串映射到对象
【发布时间】:2019-03-22 16:16:31
【问题描述】:

我在变量中而不是在文件中有一个字符串。

我可以使用 CSVHelper (https://joshclose.github.io/CsvHelper/) 解析字符串并将其映射到我的对象吗?

映射 CSV 文件的代码有效:

TextReader reader = new StreamReader("data.csv");
var csvReader = new CsvReader(reader);
var records = csvReader.GetRecords<CarModel>();

如何更改它以将字符串映射到对象:

String carmodels "make,model,year\n\rFord,Escort,1998\n\rHonda,Civiv,1994";
TextReader reader = new StreamReader(carmodels);
var csvReader = new CsvReader(reader);
var records = csvReader.GetRecords<CarModel>();

感谢您的帮助,

标记

【问题讨论】:

标签: c# mapper csvhelper


【解决方案1】:

假设CarModel 类型已经正确映射,您可以使用StringReader 而不是StreamReader:

String carmodels "make,model,year\n\rFord,Escort,1998\n\rHonda,Civiv,1994";
using (var reader = new StringReader(carmodels))
using (var csvReader = new CsvReader(reader))
{
    var records = csvReader.GetRecords<CarModel>();
}

【讨论】:

  • CsvReader(reader, CultureInfo.InvariantCulture) 为新版本。
【解决方案2】:

您“需要”为您的班级设置一个映射,这样它就知道哪一列指向哪个属性。 甚至.AutoMap() 也可以为您工作。 https://joshclose.github.io/CsvHelper/examples/configuration/class-maps/auto-mapping/

【讨论】:

    猜你喜欢
    • 2021-02-24
    • 2018-05-29
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 2018-08-06
    • 2019-09-18
    • 1970-01-01
    相关资源
    最近更新 更多