放在EXCEL里面就挺好的。
但凡集合几乎都可以。
比如array[x][y]
Dictionary<int, Dictionary<int, int>> dir = new Dictionary<int, Dictionary<int, int>>(); Dictionary<int, int> row = new Dictionary<int, int>(); row.Add(15, 40); row.Add(20, 40); row.Add(25, 40); row.Add(40, 40); row.Add(50, 50); dir.Add(100, row); //取值 Dictionary<int, int> valueRow = null; dir.TryGetValue(100,out valueRow); int value = 0; valueRow.TryGetValue(50, out value); Console.Write(value); Console.ReadKey();
这样行不
1、用什么数据结构存储比较好?
=>C# datatable 就可以装这些数据.
2、怎么根据给定的1行和A列数值查询结果(如涂黄处1行100和A列200查到结果为70)
=>
translate:I列第4行的结果为70;
通过列名和row index可以快速找到对应的结果。
1 public class DataTableHelp 2 { 3 Dictionary<Dictionary<string, int>, int> dtDic = new Dictionary<Dictionary<string, int>, int>(); 4 /// <summary> 5 /// Gets DataTable Data to Dictionary. 6 /// </summary> 7 public void initialize() 8 { 9 DataTable dt = new DataTable(); 10 11 foreach (DataColumn col in dt.Columns) 12 { 13 for (int i = 1; i < dt.Rows.Count; i++) 14 { 15 Dictionary<string, int> dic = new Dictionary<string, int>(); 16 dic.Add(col.ToString(), i); 17 dtDic.Add(dic, int.Parse(dt.Rows[i].ToString())); 18 } 19 } 20 } 21 22 /// <summary> 23 /// Gets value by column and row index. 24 /// </summary> 25 /// <param name="dt"></param> 26 /// <param name="col"></param> 27 /// <param name="row"></param> 28 public int GetValueByColAndRow(DataColumn col, int row) 29 { 30 Dictionary<string, int> dic = new Dictionary<string, int>(); 31 dic.Add(col.ToString(), row); 32 return dtDic[dic]; 33 } 34 }
如果你就是纯粹的想知道怎么把这些数据从DB中取出来用C# code操作,那先去看看datatable是怎么操作数据的。
如果行值不是完全匹配呢?比如大于100小于等于150就取150去查。
@lim42: 那就请先搞清楚你的最终需求或者静会想想该怎么用最简单的语句来表达你的需求。
使用List集合
二维数组 DataTable
这个问题的关键应该是怎么把数据从excel里面取出来吧,二维的表格很简单的,C#操作excel表格用npoi组件
我想做的excel addin,可能npoi没法用。目前是以excel为数据源用oledb去读取,但是速度相当相当慢!
@lim42: npoi可以操作Excel的,不过你要是作添加修改的话可能没有oledb方便,但是速度是可以的