【问题标题】:Create specific multidimensional array创建特定的多维数组
【发布时间】:2014-02-27 22:00:12
【问题描述】:

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

目前我有以下数组:

float[] matrix = new float[16];

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

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

【问题讨论】:

  • 它必须是一个数组吗?它可以是一个数组列表吗?
  • 如果你想要一个高效的结构,不要使用数组。而是创建一个类或结构来表示您的数据。

标签: c# arrays


【解决方案1】:

你可以这样做:

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

这会为您提供一个包含零个元素(数组)的空列表来启动。当您需要添加新数组时,您可以这样写:

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

然后将其添加到列表中:

list.Add(array);

【讨论】:

  • 这正是我所需要的,感谢 Yuck 和其他所有人的反馈!
【解决方案2】:

要存储 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]); 

【讨论】:

    【解决方案3】:

    您可以使用多维数组语法

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

    或者,您可以使用循环

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-19
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      相关资源
      最近更新 更多