C# 如何访问数组的第二维度

C# 如何访问数组的第二维度,c#,arrays,C#,Arrays,以下情况: 我有一个二维数组。不,我想进入第二维度。我怎样才能达到这个目标 下面是我澄清问题的代码: private static int[,] _Spielfeld = new int[_Hoehe, _Breite]; private static bool IstGewonnen(int spieler) { bool istGewonnen = false; for (int zaehler = 0; zaehler < _Spi

以下情况: 我有一个二维数组。不,我想进入第二维度。我怎样才能达到这个目标

下面是我澄清问题的代码:

private static int[,] _Spielfeld = new int[_Hoehe, _Breite];

    private static bool IstGewonnen(int spieler)
    {
        bool istGewonnen = false;

        for (int zaehler = 0; zaehler < _Spielfeld.GetLength(0); zaehler++)
        {
            //Here i cant understand why compiler doesnt allow
            //Want to give the second dimension on the Method
            istGewonnen = ZeileSpalteAufGewinnPruefen(_Spielfeld[zaehler] ,spieler);
        }

        return istGewonnen;
    }

//This method want to become an Array
private static bool ZeileSpalteAufGewinnPruefen(int[] zeileSpalte, int spieler)
{ 
  //Some further code
}
private static int[,]_Spielfeld=new int[_Hoehe,_Breite];
私人静态布尔伊斯特格沃南(国际斯皮尔勒)
{
bool-istGewonnen=false;
for(int-zaehler=0;zaehler<\u-Spielfeld.GetLength(0);zaehler++)
{
//在这里我不明白为什么编译器不允许
//想在方法上给出第二个维度吗
Istgewonen=ZeileSpalteAufGewinnPruefen(斯皮尔菲尔德[zaehler],斯皮尔勒);
}
返回Istgewonen;
}
//此方法希望成为数组
私有静态bool ZeileSpalteAufGewinnPruefen(int[]zeileSpalte,int spieler)
{ 
//一些进一步的代码
}

编译器说:“int[,]类型的参数不可分配给int[]类型的参数。在Java中,它的工作方式与我预期的一样。提前感谢。

将数组定义为锯齿数组(数组数组数组):

然后循环第一个维度并初始化

for (int i = 0; i < _Spielfeld.Length; i++)
{
    _Spielfeld[i] = new int[20];
}
for(int i=0;i<\u Spielfeld.Length;i++)
{
_斯皮尔菲尔德[i]=新整数[20];
}

然后剩下的代码将编译为OK。

将数组定义为锯齿数组(数组数组数组):

然后循环第一个维度并初始化

for (int i = 0; i < _Spielfeld.Length; i++)
{
    _Spielfeld[i] = new int[20];
}
for(int i=0;i<\u Spielfeld.Length;i++)
{
_斯皮尔菲尔德[i]=新整数[20];
}
然后剩下的代码就可以编译了。

C#允许两个不同的选项,尽管它们看起来非常相似,但在实践中处理起来却非常不同

你所拥有的是一个true,你不能从中自动提取一个切片。如果你有一个true,这是可能的(就像在Java中一样)

如果选择使用多维数组是有意且必须的,则必须手动提取切片;例如,请参阅

如果JAGD和多维之间的选择是开放的,那么您也可以考虑切换到锯齿形数组并获得免费切片的选项。

< P> C允许两个不同的报价,尽管它们看起来非常相似,但在实践中处理却完全不同。 你所拥有的是一个true,你不能从中自动提取一个切片。如果你有一个true,这是可能的(就像在Java中一样)

如果选择使用多维数组是有意且必须的,则必须手动提取切片;例如,请参阅


如果锯齿和多维之间的选择是打开的,那么你也可以考虑切换成锯齿形数组,并获得自由切片的选项。

除了语法之外,为什么“SmielER”是数组的“BrITE”的值?你尝试过数组[1D] [2D]吗??您不能只访问2D数组的一行或一列。您需要在它自己的1D数组中对其进行切片。或者使用锯齿数组而不是矩形数组。请参阅文档。您可以访问数组的值,如_Spielfeld[0,0]……除了语法之外,“Spiler”为什么是数组的“Breite”的值?您尝试过数组[1D][2D]?您不能仅访问2D数组的行或列。您需要在它自己的1D数组中对其进行切片。或者使用锯齿数组而不是矩形数组。请参阅文档。您可以访问数组的值,如_Spielfeld[0,0]。。。