首页 新闻 会员 周边

怎么遍历dictionary中存储的二维数组中的每个值

0
悬赏园豆:10 [已解决问题] 解决于 2012-11-08 19:33

如下:

private static Dictionary<string, float[,]> getDic()
{
float[,] floatArr = new float[2, 3];
//赋值
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
floatArr[i, j] = (i + 1) * (j + 1);
}
}
float[,] floatArr1 = new float[1,1];
//赋值
for (int i = 0; i < 1; i++)
{
for (int j = 0; j < 1; j++)
{
floatArr1[i, j] = (i + 1) * (j + 1);
}
}
//将两个二维数组加入到dictionary中
Dictionary<string, float[,]> Dic = new Dictionary<string, float[,]>();
Dic.Add("a",floatArr);
Dic.Add("b", floatArr1);
return Dic;
}

问题:如何遍历dictionary后再遍历其中的二维数组获得二维数组中的值?

谢谢各位,希望能够得到解答~~~

chenjingcq的主页 chenjingcq | 初学一级 | 园豆:193
提问于:2012-11-07 21:15
< >
分享
最佳答案
0

...

for(int i=0; i<dic[key].length; i++){

  for(int j=0; j<dict[key][i].length; j++){

    dict[key][i][j]

  }

}

收获园豆:10
向往-SONG | 老鸟四级 |园豆:4853 | 2012-11-07 21:37

不好意思, dict[key][i].length 这个有错吧,我写出来,这个东西要报错!

chenjingcq | 园豆:193 (初学一级) | 2012-11-07 21:46

@chenjingcq: 

--! length 第一个字母大写

向往-SONG | 园豆:4853 (老鸟四级) | 2012-11-07 21:51

@向往-SONG: 呵呵,大哥,不是这个意思,我知道该大写,我的意思这种方式会报错,况且dict[key][i][j]这种方式也报错!

chenjingcq | 园豆:193 (初学一级) | 2012-11-07 21:54

@向往-SONG: 还有,比如我的二维数组是float[2,3],那么这个数组通过dic[key]这种方式获取长度是2*3=6,那么在你的第一个for循环中 i 就会有6个取值,这也是问题,本来要循环这个二维数组应该第一层是2次,第二层是3次,现在你的第一层就6次~~~

chenjingcq | 园豆:193 (初学一级) | 2012-11-07 22:01

@chenjingcq: 

还真没注意,一直以为是这么写的,刚试了下,应该是这样:

foreach (string key in dic.Keys)
            {
                for (int i = 0; i < dic[key].GetLength(0); i++)
                {
                    for (int j = 0; j < dic[key].GetLength(1); j++)
                    {
                        Console.Write(dic[key][i, j]);
                    }
                }
            }
向往-SONG | 园豆:4853 (老鸟四级) | 2012-11-07 22:12

@向往-SONG: OK!谢谢!明白了,其实

dic[key].GetLength(0)
dic[key].GetLength(1)
就是获取float[2,3]中的2和3,非常感谢!
chenjingcq | 园豆:193 (初学一级) | 2012-11-07 22:17
其他回答(1)
0

foeach(string key in dic.keys)

{

  foreach(float f in dic[key])

{do }

}

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-07 21:20

谢谢,这种方式能够解决!但是如果将第二重循环改为双重for循环来遍历二维数组的话,好像不行吧?

如:

foreach(string key in dic.keys)

{

     //遍历二维数组

    for()

   {

        for()

       {

           

        }

    }

}

支持(0) 反对(0) chenjingcq | 园豆:193 (初学一级) | 2012-11-07 21:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册