【发布时间】:2020-03-05 22:02:04
【问题描述】:
这是Getting specific row and column value in .csv file in c# 的后续问题。
我在特定文件夹中有一堆 .csv 文件,我希望能够从中读取值:
cars.csv
planes.csv
tanks.csv
我想要做的是,对于我创建的csvfiles 类,将每个 csv 文件的内容存储在一个大数组中,就像我在提到的帮助下所拥有的一样以上:
string[][] m_Data = File
.ReadLines(@"c:\MyFile.csv")
.Where(line => !string.IsNullOrWhiteSpace(line))
.Skip(1)
.Select(line => line.Split(','))
.ToArray();
我希望将所有文件的内容保存在某种相当于 C++ std::map<string, std::map<int, std::map<int, double>>> FileMap 的位置,我可以在其中搜索文件名,例如 car,然后能够从特定位置的特定文件,例如下面的 C++ 代码:
double GetVal(string std::filename, int row, int column)
{
return FileMap[filename][row][column]
}
如何在 C# 中做到这一点?
编辑:.csv 文件之一的内容:
Index,Time,value,,Index,Time,value
1,0,20,,1,0,120
2,1,30,,2,1,90
【问题讨论】:
-
只使用通用字典
-
那我如何将
string[][] m_Data = File转换成字典呢?我也需要知道怎么填字典。 -
如果您提供示例文件,我可以编写一些代码来演示。你基本上必须分组然后调用字典。使用 linq 相当简单
-
对不起!添加了示例文件。它可以用几个手臂向右延伸,并在时间范围内加深,它可以向下延伸。