我拼凑出了一个C#程序,它可以将.csv
文件写入一个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?
}
}
.Rows
的,第二个是针对.Columns
的,然后你就可以引用row[column.ColumnName]
访问当前行中每一列的值了。 - Ahmad Mageedvar
而不是DataColumn
不起作用?据我所知,由于var
和foreach
的语义,它应该可以工作。 - hellouworldDataColumnCollection
没有实现IEnumerable<T>
,所以没有强类型的枚举器供var
推断类型。(这个类早于泛型的存在) - SLaks