读取CSV文件并将其保存到对象/列表中
本文关键字:对象 列表 保存 CSV 文件 读取 | 更新日期: 2023-09-27 18:04:14
DateTime,2048,2049,2050,2051
23/07/2015 8:57:30 AM,0,-30972,-31049,-21068
23/07/2015 8:57:32 AM,0,-30970,-31047,-21066
23/07/2015 8:57:35 AM,0,-30967,-31044,-21063
23/07/2015 8:57:37 AM,0,-30965,-31042,-21061
23/07/2015 8:57:40 AM,0,-30962,-31039,-21058
23/07/2015 8:57:43 AM,0,-30960,-31036,-21055
23/07/2015 8:57:45 AM,0,-30957,-31034,-21053
23/07/2015 8:57:52 AM,0,-30949,-31026,-21045
23/07/2015 8:57:55 AM,0,-30947,-31024,-21043
您好,我正在尝试将每个列保存到并发字典中。
我有一个并发字典。
ConcurrentDictionary<int, int[]> fileLoading = new ConcurrentDictionary<int, int[]>();
我想尝试将每个列标题保存为键,并且我想将列中的所有值保存到int数组中。
列头不是固定的,因为头会改变为不同的值。
另外,我还想把日期/时间保存到一个列表中。
List<string[]> timeCol = new List<string[]>();
完成后,我想使用字典将其显示到图表中,因为我需要在显示之前对它们进行一些操作,将日期时间放在第一列。
List<string[]> rows = File.ReadAllLines(filepath).Select(x => x.Split(',')).ToList();
DataTable loadedValues = new DataTable();
ConcurrentDictionary<int, int[]> fileLoading = new ConcurrentDictionary<int, int[]>();
rows.ForEach(x =>
{
try
{
loadedValues.Rows.Add(x);
}
catch { Console.WriteLine("Value not compatable"); }
});
这是我到目前为止所拥有的,但这只是保存到一个数据表中,我想要一个并发字典列表,而不是做一些特定的操作。谢谢你
你做对了。下面是一个示例,说明如何遍历已解析的行来填充ConcurrentDictionary
。
// Parse
var rows = File.ReadAllLines(filePath).Select(l => l.Split(',')).ToArray();
ConcurrentDictionary<int, int[]> fileLoading = new ConcurrentDictionary<int, int[]>();
// Iterate through each column (skipping the date column)
for (int c = 1; c < rows[0].Length; c++)
{
// Column header
int column = Int32.Parse(rows[0][c]);
// Column values
fileLoading[column] = rows.Skip(1).Select(r => Int32.Parse(r[c])).ToArray();
}