【问题标题】:Java multidimensional array to c#Java多维数组到c#
【发布时间】:2015-12-12 10:49:45
【问题描述】:

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

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

我正在努力实现this 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# multidimensional-array


【解决方案1】:

像这样:

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];
vs
var res = tileMap[0,1];

【讨论】:

    【解决方案2】:

    您在new int[] 中缺少,

    这样试试

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

    【讨论】:

    • 做到了 :) 几秒钟前我从@HungPV 的评论中找到了它。当它让我在 6 分钟内接受时会接受
    • Java 锯齿状数组转换为 C# 锯齿状数组(根据 Rob 的回答)。不知道为什么这么多人似乎想将这些转换为特定于 C# 的多维数组。
    • @DaveDoknjas 我找到了更多信息,因此我将 Rob 的答案标记为正确,因为我意识到多维数组不正确。我以前不知道锯齿状数组,它们看起来很有用:)
    【解决方案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[,]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      相关资源
      最近更新 更多