C#获取float [,]中的条目,它是List <float [,]> </float [,]>的一部分

时间:2012-10-19 09:05:38

标签: c# arrays list

我有一个二维浮点数列表:

List<float[,]> nodes = new List<float[,]>();

我做了一些事情,最后得到了一个我想要使用的float [,]的zerobased索引(例如2代表第三个数组)

现在我想从这个数组中获取一个值。我认为它可能会像

一样工作
float foo = nodes[selectedIndex][0,0]

在节点[selectedIndex]中获取数组中的元素[0,0]。我应该说什么?不行。只是工作

float[,] tmp = nodes[selectedIndex];
float foo = tmp[0,0];

据我所知,我需要为数组分配两次内存(一次在List中,一次在tmp中)以获得一个值。我不希望这样吗?!难道没有获得此值的快捷方式吗?

希望你能帮助我!

3 个答案:

答案 0 :(得分:1)

float foo = nodes[selectedIndex][0,0]

它的工作原理会非常好,它只是无法理解它的智能感知。

同样,当将值分配给tmp时,您没有分配任何大量内存,tmp变量只是指向实际数据。

答案 1 :(得分:0)

这有效:

float foo = (nodes[selectedIndex])[0,0];

但也有效:

            List<float[,]> nodes = new List<float[,]>();
            float[,] fl = new float[2, 2];
            fl[0, 0] = 2.2f;
            nodes.Add(fl);
            float foo = nodes[0][0, 0];

也许你没有实例化float数组?

答案 2 :(得分:0)

此代码有效且有效。问题必须是别的。也许nodes中没有条目为selectedIndex的条目?


一个小样本,用于演示语法是否正确:

List<float[,]> nodes = new List<float[,]>();
nodes.Add(new float[2,2]{{1,2},{3,4}});
float foo = nodes[0][0,0];

现场直播:http://ideone.com/R2Drh