我尝试将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);
}
答案 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());