C#,在函数中返回一个数组

时间:2015-09-16 15:26:31

标签: c# .net arrays

我有一个生成数组的方法。我想返回这个数组,所以我可以使用另一种方法。到目前为止,这是我的代码:

public static Array[] generateFirstArray(int seedValue)
{
    int[] firstArray = new int[20];
    Random randomNumber = new Random(seedValue);

    for (int i = 0; i < firstArray.Length; i++)
    {
        firstArray[i] = randomNumber.Next(0, 4);
    }

    return firstArray;
}

但是当我运行它时,我收到以下错误:

  

错误1无法将类型'int []'隐式转换为'System.Array []'

我尝试在firstArray之后添加[]但仍然无效。

3 个答案:

答案 0 :(得分:13)

您的返回类型当前是Array个对象的数组。将您的返回类型更改为int s(int[])数组:

public static int[] generateFirstArray(int seedValue)

答案 1 :(得分:6)

您的方法的签名表示您正在尝试返回数组数组(Array[])。

您想要返回int[],只需将签名更改为

即可
public static int[] generateFirstArray(int seedValue)

答案 2 :(得分:0)

您的方法的返回类型必须是int[]而不是Array[]

这是实现它的另一种方法

int Min = 0;
int Max = 4;
Random randNum = new Random(seedValue);
int[] firstArray = Enumerable
                   .Repeat(0, 20)
                   .Select(i => randNum.Next(Min, Max))
                   .ToArray();
return firstArray;