如何在C#中返回数组而不在方法中创建数组?

时间:2017-11-03 08:12:17

标签: c# arrays methods return-type

进行一些计算后我必须返回一个数组。但我不知道怎么做而不在方法中创建一个数组。

int[] arr = numbers(number1, number2); // this is in the main function

这是我创建的方法

static int[] numbers(int number1, int number2)
{
     for(int i=number1; i<=number2; i++)
    {
        if(i%2==1)
        {
            return [i++]=i;
        }
    }
    return 0;

}          

这是我到目前为止所做的,但它有编译时错误。 如果i中的值对于main方法中的数组是奇数,我想要做的就是返回。

请注意,我不想在数字方法中创建另一个数组。

原始问题是关于在给定范围内找到奇数。 Number1和number2是范围限制。方法声明没有变化。内容可以按我的意愿创建。最后它应该返回方法的返回类型。整数数组将捕获返回的东西。这就是所有,最后打印数组

1 个答案:

答案 0 :(得分:0)

static IEnumerable<int> Number(int number1, int number2){
    for(int i=number1; i<=number2; i++) {
        if(i%2==1) {
            yield return i;
        }
    }
}

static int[] Number(int number1, int number2){
    var x = new int[number2];
    int y = 0;
    for(int i=number1; i<=number2; i++) {
        if(i%2==1) {
            x[y] = i;
            y++;
        }
    }
    return x;
}

这是您正在寻找的而不创建数组

称之为:

var something = Number(1,5).ToArray();