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

时间:2015-07-25 20:03:04

标签: c# arrays csv

我尝试将c#中的2-D数组导出到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);

 }

1 个答案:

答案 0 :(得分:1)

显示的代码中存在很多问题。最重要的是GetUpperBound错误地使用了返回&#39; upperbound&#39;你的数组,以及你的例子,这个上限是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());