如何在不在方法内部创建数组的情况下返回C#中的数组?
我必须在做一点计算后返回一个数组。但是如果不在方法内部创建一个数组,我不知道怎么做如何在不在方法内部创建数组的情况下返回C#中的数组?,c#,arrays,methods,return-type,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)
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;
}
静态int[]数字(int number1,int number2)
{
对于(int i=number1;i那么谁来创建数组?你到底想做什么?为什么不在方法内部创建数组?或者创建一个数组字段并返回对它的引用,以及相关的错误和返回陈旧、肮脏或突然更改的数据的风险?如果你告诉我们为什么要这样做,可能还有其他解决方案打开?但是…为什么?现在你的问题是这样的:“我如何在不创建数组的情况下创建数组?”。是否要填充在另一个方法中创建的数组?是否需要比数组更灵活的方法,因为您不知道它将包含多少个元素?您可以使用返回IEnumerable
,并在方法之外调用ToArray
,但问题仍然是:为什么?(还有,什么是l
和r
?)当然它会有编译时错误,第一件事是你必须返回int[]
,但是返回0
。这是什么->[i++]=i;
?Jordy非常感谢您的回答。但我只允许更改方法的主体Numbers@Joe我想你是在某个编码网站上,通过了测试或别的什么。@Joe SO不是问答服务。你甚至还没有发布真实的问题。至于问答,你知道你已经失败了吗?@SeM-ՍեՄ…是的,你“你当然是对的。当这是连续第十个这样质量的问题时,有时要保持友好有点困难。@乔:不,你没有问。你只发布了部分问题。有太多可能的答案,这让人恼火。如果你把它设为数字函数中的一个局部函数,这个答案会起作用。极端,是的,但不正确。”这就是你一直问到现在的问题
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();