Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对整数数组排序_C#_Arrays - Fatal编程技术网

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
或使用linq
var arr2=arr1.ToArray()
,这也是posiible
var sorted=unsortedar.OrderBy(x=>x.ToArray()
很高兴我帮助了您。如果您有任何问题,请编写。