创建特定的多维数组

4

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

目前我有以下数组:

float[] matrix = new float[16];

我需要创建一个二维数组,每行包含先前提到的16个浮点数。此外,二维数组中的行数在程序开始时是未知的(即它将基于一个变量)。

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


2
它必须真正是一个数组吗?它可以是数组列表吗? - Yuck
如果你想要一个高效的结构,不要使用数组。相反,创建一个类或结构来代表你的数据。 - Crono
3个回答

1
为了存储16个浮点数,您可以使用一个4x4矩阵(它是一个4x4二维数组)。有关更多详细信息,请查看此文档
// 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
你可以这样做:

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

这会给你一个包含零个元素(数组)的空列表。当你需要添加新的数组时,你可以这样写:
var array = new float[arraySize];
// do stuff to the array

然后将其添加到列表中:
list.Add(array);

那正是我所需要的,感谢Yuck和其他所有人的反馈! - user3019217

1
你可以使用多维数组语法。
float[,] arr2D = new float[12,12];

另外,你可以使用循环。
float[][] floats = new float[12][];
for(int i=0; i< 12; i++)
{
floats[i] = new float[12];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接