首页新闻找找看学习计划

c#如何查询一个二维表格

0
悬赏园豆:20 [待解决问题]

 

如上图,有这么一个二维表格,问题:

1、用什么数据结构存储比较好?

2、怎么根据给定的1行和A列数值查询结果(如涂黄处1行100和A列200查到结果为70)

lim42的主页 lim42 | 初学一级 | 园豆:157
提问于:2017-10-22 22:02
< >
分享
所有回答(7)
0

放在EXCEL里面就挺好的。

爱编程的大叔 | 园豆:29862 (高人七级) | 2017-10-22 23:47
0

但凡集合几乎都可以。

比如array[x][y]

花飘水流兮 | 园豆:10568 (专家六级) | 2017-10-23 08:55
0
            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();

这样行不

海之殇 | 园豆:472 (菜鸟二级) | 2017-10-23 10:34
0

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是怎么操作数据的。
~扎克伯格 | 园豆:1799 (小虾三级) | 2017-10-23 11:29

如果行值不是完全匹配呢?比如大于100小于等于150就取150去查。

支持(0) 反对(0) lim42 | 园豆:157 (初学一级) | 2017-11-02 21:32

@lim42: 那就请先搞清楚你的最终需求或者静会想想该怎么用最简单的语句来表达你的需求。

支持(0) 反对(0) ~扎克伯格 | 园豆:1799 (小虾三级) | 2017-11-03 09:50
0

使用List集合

lwr | 园豆:48 (初学一级) | 2017-10-24 16:40
0

二维数组 DataTable

易水寒星 | 园豆:216 (菜鸟二级) | 2017-10-26 15:24
0

这个问题的关键应该是怎么把数据从excel里面取出来吧,二维的表格很简单的,C#操作excel表格用npoi组件

虚风客 | 园豆:235 (菜鸟二级) | 2017-10-31 11:30

我想做的excel addin,可能npoi没法用。目前是以excel为数据源用oledb去读取,但是速度相当相当慢!

支持(0) 反对(0) lim42 | 园豆:157 (初学一级) | 2017-11-02 21:37

@lim42: npoi可以操作Excel的,不过你要是作添加修改的话可能没有oledb方便,但是速度是可以的

支持(0) 反对(0) 虚风客 | 园豆:235 (菜鸟二级) | 2017-11-03 12:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册