从表格中查找值并用数据填充的正确方法

我目前的项目基本上是一个Excel电子表格到Windows应用程序的转换。 我使用表和vlookups来查看工作表的一部分。 假设表格看起来像这样(完全像这样,每个季度只有一个额外的行被添加到底部):

在这里输入图像描述

我想模仿在C#中的vlookups,我可以想到几种不同的方式,但是我正在寻找什么“最好”的方式。 “最好”,我的意思是最简单的代码和最易维护,我不是说速度,如果它在10秒内工作就足够好。 这发生在具有区域名称和Yr / Qrt作为string传入的方法中。 使用这些数据结构,我应该使用什么数据结构来存储表格数据,我怎样才能以最less的代码来完成呢?

编辑

我现在已经收到了我将从中提取数据的实际excel文件。 任何关于如何只获得“yearQtr”字段和使用C#的HRTC字段的build议将不胜感激

编辑

刚发现他们机器运行这个应用程序不会有excel。 所以上面显示的文件在被读入应用程序之前必须改变成另一种格式(这将通过手动将文件从excel保存为csv或xml或其他格式来处理,所以我想我的问题是如何获得上面描述的数据出了一个csv或者xml

你可以这样做:

 public class MyClass { public List<string> columns; } 

然后在表单中,你可以这样查看:

 List<MyClass> myValues; public List<MyClass> LookUp(string value, int columnIndex) { return this.myValues.Where( input => input.columns[columnIndex] == value ).ToList(); } 

我目前正在使用这个架构解决scheme来满足我的数据需求。 我每次需要时都会创build一个新表(就像我在问题中所说的,速度无关紧要)。 该表仅适用于每个表的特定区域。 如你所知,我还没有弄清楚Excel数据提取部分。

 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 the File, get the appropriate Values //for each value found } internal double locateRelevantValue(string yearQuarter) { double locatedValue = 0.0; _regionTimeValues.TryGetValue(yearQuarter,out locatedValue); return locatedValue; } }