2015-07-25 4 views
0

Я попытался экспортировать двухмерный массив из C# в файл csv, но последние несколько строк отсутствуют в файле csv. Я не знаю, где проблема в моем коде.Экспорт C# массива в файл 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

'StreamWriter's являются' IDisposable', так что вы должны 'Dispose()' их, когда вы закончили ... –

+0

также ваш пример недействительно C# as is – BrokenGlass

ответ

1

В показанном коде есть много проблем. Наиболее важным является неправильное использование 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()); 
+0

File.WriteAllText (@ "fileadress.csv", sb.ToString()); –

+0

Да, изменил его, не могли бы вы обновить ответ? – Steve

+1

Я тестировал его в своей программе. Но он говорит, что файл не существует. Я хотел бы задать вам этот вопрос, но потом я узнал, что пропустил 'using System.IO'. мой комментарий - ошибка. –

Смежные вопросы