Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何填充巨大的二维阵列_C#_Arrays_Multidimensional Array_Perlin Noise - Fatal编程技术网

C# 如何填充巨大的二维阵列

C# 如何填充巨大的二维阵列,c#,arrays,multidimensional-array,perlin-noise,C#,Arrays,Multidimensional Array,Perlin Noise,我目前正在尝试用C#制作柏林噪声发生器,我需要一个巨大的2D阵列来使用 这是我当前的解决方案,但对于更大的阵列,我无法做到这一点 int[,] noise = new int[8, 8]{ {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0

我目前正在尝试用C#制作柏林噪声发生器,我需要一个巨大的2D阵列来使用

这是我当前的解决方案,但对于更大的阵列,我无法做到这一点

int[,] noise = new int[8, 8]{
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0}
};

您可以编写一个函数来填充数组。 GetLength(dimension number)返回C#中多维数组的维度大小。二维尺寸标注的行数为0,列数为1。因此,编写如下函数:

  public static void fill2DArray(int[,] arr){
    int numRows = arr.GetLength(0);
    int numCols = arr.GetLength(1);

    for(int i = 0; i < numRows; ++i){
        for(int j = 0; j < numCols; ++j){
            arr[i,j] = 0;
        }
    }
}
publicstaticvoidfill2darray(int[,]arr){
int numRows=arr.GetLength(0);
int numCols=arr.GetLength(1);
对于(int i=0;i

尝试调用函数,如
fill2DArray(myArray)。您也可以使用内的
Random
填充随机数据。

循环并填充它们。您可以参考此答案。当数组已经是默认值时,为什么需要用零填充它?或者您正在询问其他一些值?为了扩展Alexei的注释,在C#中,数组将使用默认值(T)初始化,对于数值类型,默认值为0,对于类为null,等等。当您完成时,我假设您的数组不会完全为零(正如其他人指出的,您可以免费获得该值)。如果你的数组真的很大,几乎都是零(但是有一些非零元素),考虑编写一个稀疏数组类,在这里你只跟踪非零元素。最简单的实现是将非零元素存储在
字典中
,其中键类型为两个int(x和y)的值元组,值与数组类型匹配。我认为您可以编写一个2D索引属性,这样就可以使它看起来像2D arrayCode无效一样。复制粘贴前请务必检查来源(如)。我错误地键入了[I][j]而不是[I,j]。我已经解决了这个问题,它正在工作,我已经尝试填充一个数组,在参数中传递值。