CSV拆分方法在第一栏打印第一栏两次

我有一个几乎完成的程序。 问题是,当我打印出“新”的CSV文件时,除了excel中的第一列以外,每件事情都是正确的。 这是打印信息两次,但只在第一列。 我看遍了我的代码,我无法看到我打算出两次或调用令牌两次。

该scheme的目的是简单地重新组织专栏,并将其格式化为所需的方式。 我正在访问的令牌是在位置inputBuffer[23] ,我已经设置为outputBuffer[0]相等,我只做这一次,但是当我运行程序并检查文件,第一个logging的第一列应该保持价值841而不是841841 ,我不知道如何。 所有其他列都非常好。

任何人都可以发现什么是错的?

我的方法


 /* * This method uses the fields (array elements) in the output * buffer to assemble a CSV record (string variable). The * CSV record is then written to the output file. */ public static void BuildRecordAndWriteOutput() { string record = outputBuffer[0]; for (int i = 0; i < outputBuffer.Length; i++) { if (outputBuffer[i].Contains(",")) { string x = "\"" + outputBuffer[i] + "\""; record += x; } else { record += outputBuffer[i]; } if (i < outputBuffer.Length - 1) { record += ","; } } /*for (int i = 1; i < outputBuffer.Length; i++) { record = record + "," + outputBuffer[i]; }*/ output.WriteLine(record); } 

当我打电话的方法


 static void Main(string[] args) { input.SetDelimiters(","); /* * This loop reads input data and calls methods to * build an output record and write data to a CSV file. */ while (!input.EndOfData) { inputBuffer = input.ReadFields(); // Read a CSV record in to the inputBuffer. SetOutputBufferDefaultValues(); // Put default values in the output buffer. MapInputFieldsToOutputFields(); // Move fields from the input buffer to the output buffer. BuildRecordAndWriteOutput(); // Build record from output buffer and write it. } Console.WriteLine("done"); input.Close(); output.Close(); Console.Read(); } 

这是一个截图,以防我的解释不清楚


在这里输入图像说明

代码中有更多的数据,而我现在还没有发布,但是如果能帮上忙的话,我可以。

谢谢!

在你的BuildRecordAndWriteOutput ,你分配logging:

 string record = outputBuffer[0]; 

然后从0开始循环, 追加 outputbuffer[0]来logging:

 for (int i = 0; i < outputBuffer.Length; i++) { record += .... } 

这是什么导致您的第一列有重复的数据。

您可以通过在循环之前将您的logging初始化为空string来解决此问题:

 string record = "";