我想返回一个排序列表,但它给了我这个错误。我该怎么办?
public class sortA : sortMethod
{
public override List<int> Sort(List<int> A)
{
//List<int> Asorted = new List<int>();
//Asorted = A.Sort(){ };
return A.Sort();
}
}
答案 0 :(得分:5)
返回A.Sort
不返回已排序的数组,它返回Sort
命令的返回值。由于Sort
是void
方法,因此它实际上不返回任何内容,因此返回错误消息。
因此,要返回已排序的数组,您需要在之后将其返回进行排序:
public class sortA : sortMethod
{
public override List<int> Sort(List<int> A)
{
A.Sort();
return A;
}
}
答案 1 :(得分:2)
List<T>.Sort()
方法对整个List中的元素进行排序 使用默认比较器。并且该方法的返回类型无效。
为什么会收到错误:
在您的情况下,方法Sort
期望返回类型为List<Int>
的值,但是您返回A.Sort()
实际上什么都不返回。这就是错误的原因。
你能做什么:
调用A.Sort()
后,列表A
被排序。现在您可以返回A
。修改后的代码将是:
public override List<int> Sort(List<int> A)
{
A.Sort();
return A;
}