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}
};
但是我可以看出这是不对的,并且会抛出错误。
提前感谢您的帮助!
像这样:
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[,]