Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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/8/redis/2.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中对数组排序时出现编译错误#_C#_Arrays_Sorting_Delegates_Integer - Fatal编程技术网

C# 尝试在C中对数组排序时出现编译错误#

C# 尝试在C中对数组排序时出现编译错误#,c#,arrays,sorting,delegates,integer,C#,Arrays,Sorting,Delegates,Integer,我在用C#做作业,这需要对数组进行排序。我可以使用 Array.sort<int>(a, delegate(int x, int y) { return y-x;}); Array.sort(a,委托(intx,inty){returny y-x;}); 但是,如果我想从某个位置和某个长度开始 Array.sort<int>(a, 0, m, delegate(int x, int y) { return y-x;}); 排序(a,0,m,委托(intx,inty)

我在用C#做作业,这需要对数组进行排序。我可以使用

Array.sort<int>(a, delegate(int x, int y) { return y-x;});
Array.sort(a,委托(intx,inty){returny y-x;});
但是,如果我想从某个位置和某个长度开始

Array.sort<int>(a, 0, m, delegate(int x, int y) { return y-x;});
排序(a,0,m,委托(intx,inty){返回y-x;}); 我收到编译错误:“无法将匿名方法转换为类型‘System.Collections.Generic.IComparer’,因为它不是委托类型”。 我仅仅通过使用计算机就解决了这个问题

Array.sort<int>(a, 0, m);
Array.sort(a,0,m);
然后把其他的事情都倒过来做。为什么它会给我一个错误,如何改变它的工作


感谢您的帮助

如果您不需要自定义比较器,请将null作为第四个参数传递

如果需要,则需要一个专门从IComparer继承的参数——不能只使用匿名委托


第一个示例调用的方法具有签名:

Array.Sort(int[] array, Comparison<int> comparison) 
Array.Sort(int[] array, int index, int length, IComparer<int> comparer) 
注意i比较者,而不是比较

如果您需要自定义排序。您需要创建一个实现的类,因为这是第4个参数所期望的


或者,尝试
.OrderByDescending
扩展方法,该方法在使用System.Linq包含
时可用

尝试查找您在MSDN上调用的方法,并查看其参数的类型。感谢您提供的
.OrderByDescending()
,我已经查找了一段时间了!