gpt4 book ai didi

c# - 无法解析构造函数 'CsvReader(string)'

转载 作者:太空宇宙 更新时间:2023-11-03 19:11:39 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,将 CSV 文件加载到我创建的自定义类中。为此,我使用了以下库:http://joshclose.github.io/CsvHelper/#mapping

我已经编写了我的实体类,如下所示:

public class BreakthroughCampaignEntity
{
public string ConstituentId { get; set; }
public string F2F { get; set; }
public string GiftStatus { get; set; }
public string Title1 { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string PreferredAddress { get; set; }
public string PreferredSuburb { get; set; }
public string PreferredEmailNumber { get; set; }
public string PreferrredHomeNumber { get; set; }
public string PreferredWorkNumber { get; set; }
public string PreferrredMobileNumber { get; set; }
public string GiftAmount { get; set; }
public DateTime GiftNextTransactionDueDate { get; set; }
public DateTime GiftSpecificAttributesPledgeGiftSignUpDate { get; set; }
}

还有我的索引映射:

public class BreakthroughCampaignIndexMap : CsvClassMap<BreakthroughCampaignEntity>
{
/// <summary>
/// Creates a map by matching the CSV indexes to our entity class
/// </summary>
public override void CreateMap()
{
Map(m => m.ConstituentId).Index(0).Default("Unknown");
Map(m => m.F2F).Index(1).Default("Unknown");
Map(m => m.GiftStatus).Index(2).Default("Unknown");
Map(m => m.Title1).Index(3).Default("Unknown");
Map(m => m.FirstName).Index(4).Default("Unknown");
Map(m => m.Surname).Index(5).Default("Unknown");
Map(m => m.PreferredAddress).Index(6).Default("Unknown");
Map(m => m.PreferredSuburb).Index(7).Default("Unknown");
Map(m => m.PreferredEmailNumber).Index(8).Default("Unknown");
Map(m => m.PreferrredHomeNumber).Index(9).Default("Unknown");
Map(m => m.PreferredWorkNumber).Index(10).Default("Unknown");
Map(m => m.PreferrredMobileNumber).Index(11).Default("Unknown");
Map(m => m.GiftAmount).Index(12).Default("Unknown");
Map(m => m.GiftNextTransactionDueDate).Index(13);
Map(m => m.GiftSpecificAttributesPledgeGiftSignUpDate).Index(14);
}
}

我还通过包管理器控制台安装了 CSV 帮助程序库,以确保我拥有最新版本。

不幸的是,当我使用以下内容加载我的 CSV 时:

var csv = new CsvReader(TextFileToProcess.Text.ToString());

var processedFile = csv.GetRecords<BreakthroughCampaignEntity>();

this 中所引用StackExchange 帖子(Josh Close 的回答)我在 TextFileToProcess.Text.ToString() 下方收到以下错误:

Cannot resolve constructor 'CsvReader(string)', candidates are: CsvReader(CsvHelper.ICsvParser) (in class CsvReader) CsvReader(System.IO.TextReader) (in class CsvReader)

我也尝试过使用:

var csv = new CsvReader(File.OpenRead(TextFileToProcess.Text.ToString()));

它提供了相同的错误。

我很想了解这意味着什么,而不仅仅是如何解决它!我的知识有一些差距,这意味着虽然这个错误似乎表明如何解决问题,但我不明白它在告诉我什么。

最佳答案

错误消息意味着 CsvReader 没有将 csv 文本作为参数的构造函数。然后,该错误会告诉您哪些构造函数可以帮助您找出正确的构造函数。

这个采用了 ICsvParser 的一个实例:

CsvReader(CsvHelper.ICsvParser) (in class CsvReader)

这可能是您的最佳选择,需要一个 TextReader

CsvReader(System.IO.TextReader) (in class CsvReader)

如果你有文件名,你可以这样做:

new CsvReader(File.OpenText(filePath));

如果您只有 csv 文本,您可以创建一个 StringReader:

new CsvReader(StringReader(TextFileToProcess.Text.ToString()));

关于c# - 无法解析构造函数 'CsvReader(string)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207699/

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