C# 编译器错误:无效的秩说明符:应为'';或';]';关于二维数组初始化

C# 编译器错误:无效的秩说明符:应为'';或';]';关于二维数组初始化,c#,multidimensional-array,C#,Multidimensional Array,我有一个作业要用C语言完成。作为一名完全的C#新手,我首先用Java做了这个项目,现在我正在尝试将它转换成C#。我有以下函数,它导致以下编译器错误 错误:无效的秩说明符:应为“,”或“]'在以下行: int[][] grid=new int[g.cols][g.rows]; Visual studio正在g行中的g下划线 public int[][] getConvergenceCounts(MandelbrotGrid g){ int[][] grid=new int[g.cols][g

我有一个作业要用C语言完成。作为一名完全的C#新手,我首先用Java做了这个项目,现在我正在尝试将它转换成C#。我有以下函数,它导致以下编译器错误

错误:无效的秩说明符:应为“,”或“]'在以下行:

int[][] grid=new int[g.cols][g.rows];
Visual studio正在g行中的g下划线

public int[][] getConvergenceCounts(MandelbrotGrid g){
  int[][] grid=new int[g.cols][g.rows];

  for(int x=0;x<g.cols;x++){
     for(int y=0;y<g.rows;y++){
        double tx=x*(double)3/400-1.5;
        double ty=y*(double)3/400-1.5;
        grid[x][y]=getConvergenceCount(new Complex(ty,tx));
     }
  }

  return grid;
}
public int[]getConvergenceCounts(MandelbrotGrid g){
int[][]网格=新int[g.cols][g.rows];
对于(int x=0;x,C#编译器认为您试图声明a,但这样做不正确。锯齿数组是数组的数组,其中主数组中包含的每个数组可以有不同数量的元素。锯齿数组的声明如下:

int[][] jaggedArray = new int[numElements][];
这将创建一个数组,其中可以包含“
numElements
”整数数组

您要声明一个,例如:

public int[]getConvergenceCounts(MandelbrotGrid g){
int[][]网格=新int[g.cols][];

对于(int x=0;x如果你想使用交错数组,@Frank的解决方案就是你需要做的。当你启动交错数组时,你不能同时声明两个维度,因为C#假设你的行的维度不相等。在@Doughnut的解决方案中,如果你有矩阵类型的solu,多维数组方法是一个很好的解决方案(这是什么)但是,C#针对一维数组进行了优化,为了节省时间,您可能仍然希望使用锯齿数组选项。因此,如果要在多维数组上执行许多操作,则应初始化锯齿数组,然后在输入行时,分别指定行长

public int[][] getConvergenceCounts(MandelbrotGrid g)
{
    int[][] grid=new int[g.cols][];

    for(int x=0;x<g.cols;x++){
        grid[i] = new int[g.rows];
        for(int y=0;y<g.rows;y++){
           double tx=x*(double)3/400-1.5;
           double ty=y*(double)3/400-1.5;
           grid[x][y]=getConvergenceCount(new Complex(ty,tx));
         }
    }
    return grid;
}
public int[]getConvergenceCounts(MandelbrotGrid g)
{
int[][]网格=新int[g.cols][];

对于(int x=0;xDo,您需要一个真正的多维数组(在这种情况下,您需要类似于
newint[g.cols,g.rows]
)或数组数组数组(在这种情况下,您需要类似于
newint[][g.cols]
的数组,后跟一个循环)?我需要一个真正的多维数组。谢谢你的回答。但是这似乎打破了我在其他地方得到的另一个方法。我嵌套了for循环来迭代二维数组。for(int y=0;ypublic int[][] getConvergenceCounts(MandelbrotGrid g){ int[][] grid=new int[g.cols][]; for(int x=0;x<g.cols;x++){ int[x] = new int[g.rows] for(int y=0;y<g.rows;y++){ double tx=x*(double)3/400-1.5; double ty=y*(double)3/400-1.5; grid[x][y]=getConvergenceCount(new Complex(ty,tx)); } } return grid; }
public int[][] getConvergenceCounts(MandelbrotGrid g)
{
    int[][] grid=new int[g.cols][];

    for(int x=0;x<g.cols;x++){
        grid[i] = new int[g.rows];
        for(int y=0;y<g.rows;y++){
           double tx=x*(double)3/400-1.5;
           double ty=y*(double)3/400-1.5;
           grid[x][y]=getConvergenceCount(new Complex(ty,tx));
         }
    }
    return grid;
}