为什么我在CSV文件中有引号?

Mik*_*Del 4 c# csv csvhelper

使用此代码我想写标题:

const string Header = "Name;Date";

using (var writer = new StreamWriter(path))
{
   var csvWriter = new CsvWriter(writer);

   csvWriter.Configuration.Delimiter = ";";

   csvWriter.WriteField(Header);
   csvWriter.NextRecord();
   ...
Run Code Online (Sandbox Code Playgroud)

之后打开文件:

"Name;Date"
Run Code Online (Sandbox Code Playgroud)

我想要的是:

Name;Date
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 10

CSV中的引号有助于消除何时在单个字段中的文本中包含分隔符的歧义.例如,如果我使用常规CSV(使用逗号作为分隔符),则其中一个字段可能是地址.但是,如果我的地址是12 Some Street, Amazing Town,那么我不能"按原样"存储 - 逗号将使任何解析器认为该地址是12 Some Street,并且下一个字段是Amazing Town.因此,如果要存储的值包含分隔符或换行符(出于类似原因,但是:下一条记录),引号用于表示您的意思.

在您的情况下,您的分隔符是;和值包含;- 所以是的,它需要引号.我怀疑你实际上打算写两个标题,一个Name,一个Date.例如:

csvWriter.WriteField("Name");
csvWriter.WriteField("Date");
csvWriter.NextRecord();
Run Code Online (Sandbox Code Playgroud)