繁体   English   中英

将c#数组导出到带有标题的csv文件

[英]Export c# array to csv file with title

我试图将二维数组从c#导出到一个csv文件,但是csv文件中缺少最后几行。我不知道问题出在我的代码中。

首先,我想知道我的代码是否不正确?

其次,是否可以为csv文件中的每一行添加标题。

提前致谢

这是我在C#中的数组的示例

 string[,] array=new string[]{{2000,2},{2001,4}}

我想在带有标题的csv文件中得到这样的结果

  Date   C1
  2000   2
  2001   4

我的代码:

 var outfile=new.streamwriter(@"fileadress.csv");
 for(int i=0;i<array.GetUpperbound(0);i++)
 {
   string content="";
  for(int j=0;j<array.GetUpperbound(1);j++)
   {
     content+= array[i,j]+";";
   }
  outfile.WriteLine(content);

 }

显示的代码中存在很多问题。 最重要的是GetUpperBound的错误用法返回了数组的“ GetUpperBound ”,在您的示例中,上限为1(而不是2),因此< array.UpperBound跳过了数组中的最后一个位置。

我建议以这种方式修改您的代码

// This is an array of strings right?
string[,] array=new string[,]{{"2000","2"},{"2001","4"}};

// Use a StringBuilder to accumulate your output
StringBuilder sb = new StringBuilder("Date;C1\r\n");
for (int i = 0; i <= array.GetUpperBound(0); i++)
{
    for (int j = 0; j <= array.GetUpperBound(1); j++)
    {
         sb.Append((j==0 ? "" : ";") + array[i, j]);        
    }
    sb.AppendLine();
}

// Write everything with a single command 
File.WriteAllText(@"fileadress.csv", sb.ToString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM