-1

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

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

我做了一些事情,最后得到了我想使用的 float[,] 的从零开始的索引(例如,第三个数组为 2)

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

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

在节点 [selectedIndex] 处获取数组中的元素 [0,0]。我应该说什么?不工作。刚刚工作结束

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

据我所知,我需要为数组分配内存两次(一次在列表中,一次在 tmp 中)只是为了获得一个值。这不可能吧,我希望?!难道没有捷径可以达到这个值吗?

希望你能帮我!

4

3 回答 3

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

将按原样工作得很好,它只是智能感知,无法接受它。

此外,在为tmp您分配值时,不会分配任何大量内存,tmp 变量只是指向实际数据。

于 2012-10-19T09:17:14.120 回答
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];

也许您没有实例化浮点数组?

于 2012-10-19T09:12:51.670 回答
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

于 2012-10-19T09:13:06.403 回答