C# 使用CsvHelper写入数据时出现异常

C# 使用CsvHelper写入数据时出现异常,c#,csv,exception,csvhelper,C#,Csv,Exception,Csvhelper,我正在尝试使用CsvHelper将数据写入CSV文件。但是,我总是遇到以下例外情况: CsvHelper.Configuration.ConfigurationException:“继承 IEnumerable无法自动映射。是否意外调用GetRecord 或WriteRecord,它作用于单个记录而不是调用 获取对记录列表起作用的记录或写入记录?” 这是我的代码(C#): TextWriter outfile=新的StreamWriter(“blatest.csv”); 列表测试=新列表 { “

我正在尝试使用CsvHelper将数据写入CSV文件。但是,我总是遇到以下例外情况:

CsvHelper.Configuration.ConfigurationException:“继承 IEnumerable无法自动映射。是否意外调用GetRecord 或WriteRecord,它作用于单个记录而不是调用 获取对记录列表起作用的记录或写入记录?”

这是我的代码(C#):

TextWriter outfile=新的StreamWriter(“blatest.csv”);
列表测试=新列表
{
“你好”,
“世界”
};
CsvWriter csv=新的CsvWriter(输出文件);
csv.写入记录(测试);
我想将
列表
或(理想情况下)列表写入CSV。正确的代码是什么?如何设置标题行


感谢您的帮助。我真的无法理解这一点。

对于错误,这是因为
string
实现了
IEnumerable
(因为它是
char[]
)。通常使用
WriteRecords
传入自定义对象的
IEnumerable

您可以尝试另一种方法(示例


@Nisarg的可能副本另一篇文章是关于用CsvHelper读取文件。我的帖子是关于用CsvHelper编写文件的,所以它不是重复的。通过阅读另一篇文章,我无法从CsvHelper问题中提取任何相关信息(我不想要愚蠢的VBA库)
TextWriter outfile = new StreamWriter("blatest.csv");

List<string> test = new List<string>
{
  "hello",
  "world"
};

CsvWriter csv = new CsvWriter(outfile);
csv.WriteRecords(test);
using(var stream = new MemoryStream())
using(var reader = new StreamReader(stream))
using(var writer = new StreamWriter(stream))
using(var csvWriter = new CsvHelper.CsvWriter(writer))
{
    //csvWriter.Configuration.HasHeaderRecord = false;

    foreach( var s in test)
    {
        csvWriter.WriteField(s);
    }

    writer.Flush();
    stream.Position = 0;     
    reader.ReadToEnd(); //dump it where you want           
}