5

ARRAY を 3 次元配列から buildingCostIds に格納したいのですが、3 番目の数値が必要であると表示されます。

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, *];
}

*ここで 3 番目の数値が必要ですが、数値だけを抽出するので必要ありません。配列全体が必要です!

問題解決、解決策:

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;
}
4

2 に答える 2

5

配列の配列、またはギザギザの配列を使用すると、これはより簡単になる可能性があり[][][]ます

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

buildingCost[buildingId, 0]次に、intの配列であるにアクセスできます。

ここに関連する質問があります


編集

質問に追加した「解決した問題」はデータを複製するため、これを続けるとメモリが不足する可能性があることに注意してください。リストのリストのリストを使用し、必要なものを遅延評価することを検討してください。

于 2013-07-27T09:22:50.423 に答える
2

これを試して

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

于 2013-07-27T09:23:18.017 に答える