C#三维数组

本文关键字:数组 三维 | 更新日期: 2023-09-27 18:25:12

我想将三维数组中的ARRAY存储到buildingCostIds中,但它说我必须有第三个数字。

public static int[, ,] buildingCost = { {{0,1,2},{5,5,5}}};
public static void addBuilding(int[] ids, int[] amounts, int buildingId)
{
    int[] buildingCostIds = buildingCost[buildingId, 0, *];
}

*我需要第三个数字,但我不想要它,因为它只提取数字,我想要整个数组!

问题已解决,解决方案:

public static Array extractArray(int dim1, int dim2)
{
    int[] tempArray = { };
    for (int number=0;number<=2; number++)
    {
    tempArray[number] = buildingCost[dim1, dim2, number];
    }
    return tempArray;
}

C#三维数组

如果使用数组数组或类似的锯齿状数组[][][],这可能会更简单

int[][][] buildingCost = new int[2][][];

然后您可以访问buildingCost[buildingId, 0],它是一个int数组。

这里有一个相关的问题


编辑

请注意,您添加到问题中的"已解决问题"会重复数据,因此如果您继续这样做,可能会耗尽内存。考虑使用列表列表,并懒惰地评估您需要的内容。

试试这个

int[, ,] array3D = new int[3,3,3]