Я починил программу C#, которая берет a .csv
файл и записи это к a DataTable
. Используя эту программу, я могу циклично выполниться через каждую строку DataTable
и распечатайте информацию, содержавшуюся в строке. Консольный вывод похож на это:
--- Row ---
Item: 1
Item: 545
Item: 507
Item: 484
Item: 501
Я хотел бы распечатать имя столбца около каждого значения, также, так, чтобы оно было похоже на это:
--- Row ---
Item: 1 Hour
Item: 545 Day1 KW
Item: 507 Day2 KW
Item: 484 Day3 KW
Item: 501 Day4 KW
Кто-то может посмотреть на мой код и сказать мне, что я могу добавить так, чтобы имена столбцов распечатали? Я очень плохо знаком с C#, поэтому простите мне, если я пропустил что-то.
Вот мой код:
// Write load_forecast data to datatable.
DataTable loadDT = new DataTable();
StreamReader sr = new StreamReader(@"c:\load_forecast.csv");
string[] headers = sr.ReadLine().Split(',');
foreach (string header in headers)
{
loadDT.Columns.Add(header); // I've added the column headers here.
}
while (sr.Peek() > 0)
{
DataRow loadDR = loadDT.NewRow();
loadDR.ItemArray = sr.ReadLine().Split(',');
loadDT.Rows.Add(loadDR);
}
foreach (DataRow row in loadDT.Rows)
{
Console.WriteLine("--- Row ---");
foreach (var item in row.ItemArray)
{
Console.Write("Item:");
Console.WriteLine(item); // Can I add something here to also print the column names?
}
}
Вам нужно перебрать loadDT.Columns
, вот так:
foreach (DataColumn column in loadDT.Columns)
{
Console.Write("Item: ");
Console.Write(column.ColumnName);
Console.Write(" ");
Console.WriteLine(row[column]);
}