从一个csv文件获取数据到一个字典

我想从这个文件(indexes.csv)获取信息:

在这里输入图像说明

进入这个类的一个实例:

class Table { Dictionary<String, double> _regionTimeValues; String _region; public Table(String region) { _regionTimeValues = new Dictionary<string, double>(); _region = region; suckInValues(); } private void suckInValues() { //Go find File, get the appropriate Values for _region //add each value found in the csv file that applies, indexed by yearQuarter //Example: _regionTimeValues.Add("2013Q1", 1.1 ); } internal double locateRelevantValue(string yearQuarter) { double locatedValue = 0.0; _regionTimeValues.TryGetValue(yearQuarter,out locatedValue); return locatedValue; } 

我只想用特定区域的数据填充字典。

我怎么能从一个CSV文件做到这一点?

编辑

区域的一个例子是一个string值,如“Dalton”

我想你想要这样的事情…

 public class Table { private Dictionary<string, double> _regionTimeValues = new Dictionary<string, double>(); private String _region; public Table(String region) { _region = region; } public void AddValue(string key, double value) { _regionTimeValues.Add(key, value); } } public class Program { static void Main(string[] args) { Dictionary<string, Table> tables = new Dictionary<string, Table>(); using (var reader = new StreamReader("Data.csv")) { // First line contains column names. var columnNames = reader.ReadLine().Split(','); for(int i = 1; i < columnNames.Length; ++i) { var columnName = columnNames[i]; tables.Add(columnName, new Table(columnName)); } var line = reader.ReadLine(); while (line != null) { var columns = line.Split(','); for (int i = 1; i < columns.Length; ++i) { var table = tables[columnNames[i]]; table.AddValue(columns[0], double.Parse(columns[i])); } line = reader.ReadLine(); } } } } 

首先,您将读取标题并获取包含您所在地区的列的索引。 然后,你将不得不阅读每一行,并通过','拆分行,然后阅读索引来获得你的价值。 您也可以通过search拆分logging的第一个索引来应用yr \ qrt。