Java多维数组到c#

本文关键字:数组 Java | 更新日期: 2023-09-27 18:13:06

我需要一些帮助将这个多维数组从Java转换为c#:

int[] tileMap = new int[][] {
        {0, 1, 2, 3},
        {3, 2, 1, 0},
        {0, 0, 1, 1},
        {2, 2, 3, 3}
};

我正在努力实现这个Stackoverflow在Unity中生成等距世界的答案。我既懂Java又懂c#,但我缺乏c#多维数组转换所需的知识。

我尝试了我唯一的猜测来转换它:

int[,] tileMap = new int[]{
        {0, 1, 2, 3},
        {3, 2, 1, 0},
        {0, 0, 1, 1},
        {2, 2, 3, 3}
};

但是我可以看出这是不对的,并且会抛出错误。

提前感谢您的帮助!

Java多维数组到c#

像这样:

int[][] jagged = new int[][] {
    new int[] {0, 1, 2, 3},
    new int[] {3, 2, 1, 0},
    new int[] {0, 0, 1, 1},
    new int[] {2, 2, 3, 3}
};

编辑;上面的代码支持锯齿数组。对于非锯齿多维数组,来自HungPV的评论:

var tileMap = new int[,] {
    {0, 1, 2, 3},
    {3, 2, 1, 0},
    {0, 0, 1, 1},
    {2, 2, 3, 3}
};

它们的用法也不同:

var res = jagged[0][1];

var res = tileMap[0,1];

new int[]中缺少,

试试这样

int[,] tileMap = new int[,]{
        {0, 1, 2, 3},
        {3, 2, 1, 0},
        {0, 0, 1, 1},
        {2, 2, 3, 3}
};

可以这样初始化。

int[,] tileMap = new int[4, 4]{
        {0, 1, 2, 3},
        {3, 2, 1, 0},
        {0, 0, 1, 1},
        {2, 2, 3, 3}
};

Size不是强制性的,你甚至可以使用int[,]