CSVHelper如何将字符串映射到对象

时间:2019-03-22 16:16:32

标签: c# mapper csvhelper

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

我可以使用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>();

感谢您的帮助,

标记

2 个答案:

答案 0 :(得分: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>();
}

答案 1 :(得分:0)

您“需要”为您的类设置映射,因此知道哪个列转到哪个属性。 甚至.AutoMap()都可以为您服务。 https://joshclose.github.io/CsvHelper/examples/configuration/class-maps/auto-mapping/