在c#中调用一个方法来填充二维数组



我是一个非常新的程序员,并一直在努力编写一个方法,可以采取任何二维数组,并填满从1到15的随机整数。我相信我设法正确地建立了我的方法,但我似乎看不到如何调用我的方法来填充我在main中制作的数组。(我本来可以直接把main填出来,但我也在努力练习方法。)这是我到目前为止的代码。我很感激你们能给我的任何帮助,谢谢!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Homework2
{
class Program
{
    static void Main(string[] args)
    {
        int[,] myArray = new int[5,6];
    }
    public int[,] FillArray (int i, int j)
    {
        Random rnd = new Random();
        int[,] tempArray = new int[,]{};
        for (i = 0; i < tempArray.GetLength(0); i++)
        {
            for (j = 0; j < tempArray.GetLength(1); j++)
            {
                tempArray[i, j] = rnd.Next(1, 15);
            }
        }
        return tempArray;
    }
}

}

你的方法没有填充一个数组——它创建了一个新的数组。(也不清楚这些参数是用来做什么的。)

如果你想让它填充一个现有的数组,你应该有作为参数:

public static void FillArray(int[,] array)
{
    Random rnd = new Random();
    for (int i = 0; i < array.GetLength(0); i++)
    {
        for (int j = 0; j < array.GetLength(1); j++)
        {
            array[i, j] = rnd.Next(1, 15);
        }
    }
}

那么你可以从Main调用它:

FillArray(myArray);

指出:

  • 我们不需要返回任何东西,因为调用者已经向我们传递了一个要填充的数组的引用
  • 我已经使方法静态,因为它不需要访问Program实例的任何状态
  • 一般来说,创建一个新的Random实例"按需"是一个坏主意;阅读我关于Random的文章了解更多细节

简单的技巧是在c#中使用Enumberable.Repeat()。检查下面5列10行矩阵的代码。

int[][] a = Enumerable.Repeat(Enumerable.Repeat(-1, 5).ToArray(), 10).ToArray();
for(int i =0; i < a.Length; i++)
{
   for(int j=0; j < a[0].Length; j++)
   {
       Console.Write($"{a[i][j]} t");
   }
 Console.WriteLine();
}

O/p:

-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1

看它在行动!

https://rextester.com/SXU33123

相关内容

  • 没有找到相关文章

最新更新