2014-02-27 67 views
4

我有一个关于C#中多维数组的基本问题。创建特定的多维数组

目前我有以下的数组:

float[] matrix = new float[16]; 

我需要创建代替2D阵列与包含前面提到的16个浮点数每一行。此外,2D数组中的行数在程序开始时是未知的(即,它将基于变量)。

如何使用高效的数据结构创建这样的数组?

+2

它有吗实际上是一个数组?它可能是一个数组列表,而不是? – Yuck

+0

如果你想要的是一个高效的结构,不要使用数组。创建一个类或结构来代替您的数据。 – Crono

回答

1

你可以做这样的事情:

const Int32 arraySize = 16; 
var list = new List<float[]>(); 

,让你包含零个元件(阵列)来启动一个空列表。当你需要添加新的阵列,你可以写成这样:

var array = new float[arraySize]; 
// do stuff to the array 

然后将其添加到列表:

list.Add(array); 
+0

这正是我需要的,谢谢Yuck和其他人的反馈! – user3019217

1

要存储16个浮点数,可以使用4x4矩阵(这是一个4x4二维数组)。欲了解更多详情,请查看this documentation

// init the array 
float[,] matrix = new float[4,4]; 

// loop through the array 
for(int col = 0; col < matrix.GetLength(0); col++) 
    for(int row = 0; row < matrix.GetLength(1); row++) 
    Console.WriteLine(matrix[col, row]); 
1

您可以使用多维数组语法

float[,] arr2D = new float[12,12]; 

另外,您可以使用循环

float[][] floats = new float[12][]; 
for(int i=0; i< 12; i++) 
{ 
floats[i] = new float[12]; 
}