我有一个关于C#中多维数组的基本问题。创建特定的多维数组
目前我有以下的数组:
float[] matrix = new float[16];
我需要创建代替2D阵列与包含前面提到的16个浮点数每一行。此外,2D数组中的行数在程序开始时是未知的(即,它将基于变量)。
如何使用高效的数据结构创建这样的数组?
我有一个关于C#中多维数组的基本问题。创建特定的多维数组
目前我有以下的数组:
float[] matrix = new float[16];
我需要创建代替2D阵列与包含前面提到的16个浮点数每一行。此外,2D数组中的行数在程序开始时是未知的(即,它将基于变量)。
如何使用高效的数据结构创建这样的数组?
你可以做这样的事情:
const Int32 arraySize = 16;
var list = new List<float[]>();
,让你包含零个元件(阵列)来启动一个空列表。当你需要添加新的阵列,你可以写成这样:
var array = new float[arraySize];
// do stuff to the array
然后将其添加到列表:
list.Add(array);
这正是我需要的,谢谢Yuck和其他人的反馈! – user3019217
要存储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]);
您可以使用多维数组语法
float[,] arr2D = new float[12,12];
另外,您可以使用循环
float[][] floats = new float[12][];
for(int i=0; i< 12; i++)
{
floats[i] = new float[12];
}
它有吗实际上是一个数组?它可能是一个数组列表,而不是? – Yuck
如果你想要的是一个高效的结构,不要使用数组。创建一个类或结构来代替您的数据。 – Crono