读取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"); }
        });

这是我到目前为止所拥有的,但这只是保存到一个数据表中,我想要一个并发字典列表,而不是做一些特定的操作。谢谢你

读取CSV文件并将其保存到对象/列表中

你做对了。下面是一个示例,说明如何遍历已解析的行来填充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();
}