gpt4 book ai didi

c# - 如何创建 C# 映射类到 csvhelper

转载 作者:IT王子 更新时间:2023-10-29 04:44:53 25 4
gpt4 key购买 nike

我有一个包含 40 列的 csv 文件,我想使用 csvhelper 将它加载到数据表中。安装库后,我这样做了:

using (TextReader reader = File.OpenText(fileName)) {
var csv = new CsvReader(reader);
while (csv.Read()) {
var farmID = csv.GetField(0);
Console.WriteLine(farmID);
}
}

如您所见,我有一个控制台语句,它运行良好。

但是,csvReader 有一个构造函数,该构造函数采用自定义类直接将数据加载到它。

我试过这个:

var record = csv.GetRecord<CSVFileDefinition>();

但是我遇到了这个异常

No properties are mapped for type 'MyProjectName.CSVFileDefinition'.

因为 CSVFileDefinition 是一个空类。

我的问题是如何填补那个类(class)。

这是图书馆:

http://joshclose.github.io/CsvHelper/

非常感谢

更新2

对我有用的解决方案是:

sealed class CSVFileDefinitionMap : CsvClassMap<CSVFileDefinition>
{
public CSVFileDefinitionMap()
{
Map(m => m.FRM_ID).Name("FARM ID");
Map(m => m.FRM_OWNER).Name("FARM OWNER ");
}
}

class CSVFileDefinition
{
public string FRM_ID { get; set; }
public string FRM_OWNER { get; set; }
}

using (TextReader reader = File.OpenText(fileName)) {
var csv = new CsvReader(reader);
csv.Configuration.RegisterClassMap<CSVFileDefinitionMap>();
while (csv.Read()) {
var record = csv.GetRecord<CSVFileDefinition>();
}
}

最佳答案

似乎您需要做的就是为您希望在 CSV 文件中找到的每个列名向 CSVFileDefinition 类添加一个属性,自动映射应该会处理其余部分。

例如,如果属性名称与 CSV 中的列名称相匹配,这应该拉入农场 ID 列:

public class CSVFileDefinition
{
public int FarmId { get; set; }

//... add other columns here...
}

关于c# - 如何创建 C# 映射类到 csvhelper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25016905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com