我有一个二维浮点数列表:
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中)以获得一个值。我不希望这样吗?!难道没有获得此值的快捷方式吗?
希望你能帮助我!
答案 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];