我是一个非常新的程序员,并一直在努力编写一个方法,可以采取任何二维数组,并填满从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