C# 对整数数组排序
我的作业有问题。我必须对数组中的数字进行排序,从最低到最高。代码如下:C# 对整数数组排序,c#,arrays,C#,Arrays,我的作业有问题。我必须对数组中的数字进行排序,从最低到最高。代码如下: 在这个例子中,我必须使用一个函数,但我不知道如何才能消除这个错误。我希望你能帮助我 声明方法时,不应将new关键字用于方法的传入参数变量。这将创建变量类型的新实例 您需要将方法参数更改为: public static int[] sortieren(int[] myArr) { Array.Sort(myArr); } 旁注1:如果你的sortieren方法只做Array.Sort,为什么你需要它作为一个单独的方
在这个例子中,我必须使用一个函数,但我不知道如何才能消除这个错误。我希望你能帮助我 声明方法时,不应将
new
关键字用于方法的传入参数变量。这将创建变量类型的新实例
您需要将方法参数更改为:
public static int[] sortieren(int[] myArr)
{
Array.Sort(myArr);
}
旁注1:如果你的sortieren
方法只做Array.Sort
,为什么你需要它作为一个单独的方法(除非这是作为家庭作业或研究项目需要的)
旁注2:查看代码的其余部分,在尝试对其进行排序之后,您正在创建一个数组
您应该将Main
代码更改为:
int[] myArr = new int[5] { 1, 5, 3, 8, 21 };
Array.Sort(myArr);
....
或者,如果您坚持使用某个方法,请将其更改为:
int[] myArr = new int[5] { 1, 5, 3, 8, 21 };
sortieren(myArr);
....
您可以找到一个非常类似的示例。如果您不必使用函数来完成此操作,您可以使用如下内容:
using System;
namespace Stackoverflow
{
class Program
{
static void Main(string[] args)
{
int[] myArr = { 5, 17, 23, 9, 8, 10 };
Array.Sort(myArr);
}
}
}
using System;
namespace Stackoverflow
{
class Program
{
static void Main(string[] args)
{
int[] myArr = { 5, 17, 23, 9, 8, 10 };
ReturnSorted(myArr);
}
public static int[] ReturnSorted(int[] secondArr)
{
int[] sorted = new int[secondArr.Length];
for (int i = 0; i < secondArr.Length; i++)
{
sorted[i] = secondArr[i];
}
Array.Sort(sorted);
return sorted;
}
}
}
但是,如果必须使用函数,我会使用如下内容:
using System;
namespace Stackoverflow
{
class Program
{
static void Main(string[] args)
{
int[] myArr = { 5, 17, 23, 9, 8, 10 };
Array.Sort(myArr);
}
}
}
using System;
namespace Stackoverflow
{
class Program
{
static void Main(string[] args)
{
int[] myArr = { 5, 17, 23, 9, 8, 10 };
ReturnSorted(myArr);
}
public static int[] ReturnSorted(int[] secondArr)
{
int[] sorted = new int[secondArr.Length];
for (int i = 0; i < secondArr.Length; i++)
{
sorted[i] = secondArr[i];
}
Array.Sort(sorted);
return sorted;
}
}
}
使用系统;
命名空间堆栈溢出
{
班级计划
{
静态void Main(字符串[]参数)
{
int[]myArr={5,17,23,9,8,10};
返回值(myArr);
}
公共静态int[]ReturnSorted(int[]secondArr)
{
int[]排序=新的int[secondArr.Length];
for(int i=0;i
可以使用“array.Clear(secondArr,0,secondArr.Length);
”清空函数中的数组“secondArr”,以节省内存
我希望我能帮忙!:请尝试以下代码:
using System;
public class Program
{
static void sortieren (int[] myArr)
{
Array.Sort(myArr);
}
public static void Main(string[] args)
{
int[] myArr= new int[5] {1,5,3,8,21};
sortieren(myArr);
foreach (int u in myArr)
{
Console.WriteLine(u);
}
}
}
1)将
int[]myArray=新字符串[5]
更改为仅int[]myArray
。2) 您需要再次查看main方法中的逻辑,因为它不正确。3) 下次请不要发布图像,而是发布文章中的源代码本身。ReturnSorted也会修改原始数组如果我没有错,“int[]sorted=secondArr;”正在将整个第一个数组保存到另一个正在排序的数组中,这样第一个数组就不会被触碰。如果我没有错
很抱歉,您没有错。这是一个参考资料,你是对的。我改了密码。我提出了一个相当难看的解决方案来解决这个问题。您如何避免引用?例如,Array.Copy
或使用linqvar arr2=arr1.ToArray()
,这也是posiiblevar sorted=unsortedar.OrderBy(x=>x.ToArray()
很高兴我帮助了您。如果您有任何问题,请编写。