C# 返回已排序的整数列表

C# 返回已排序的整数列表,c#,list,sorting,C#,List,Sorting,我知道还有很多其他的线索,但我不明白为什么会这样 public int[] practice_5(List<int> items) { if (items == null) { return null; } else { List<int> items_sorted = items.OrderBy(p => p).ToList(); return items_sorted;

我知道还有很多其他的线索,但我不明白为什么会这样

public int[] practice_5(List<int> items)
{
    if (items == null)
    {
        return null;
    }
    else
    {
        List<int> items_sorted = items.OrderBy(p => p).ToList();
        return items_sorted;
    }
}
public int[]实践五(列表项目)
{
if(items==null)
{
返回null;
}
其他的
{
List items_sorted=items.OrderBy(p=>p.ToList();
返回已排序的项目;
}
}
因此,我已正确地对项目列表进行了排序。我假设,但无论我尝试什么解决方法,它都不会返回它,因为它无法将type
List
转换为
int[]

返回前是否必须转换变量
项\u排序

public int[] practice_5(List<int> items)
{

    if (items == null)
    {
       return null;
    }
    else
    {
       return items.OrderBy(p => p).ToArray();
    }
}
public int[]实践五(列表项目)
{
if(items==null)
{
返回null;
}
其他的
{
return items.OrderBy(p=>p.ToArray();
}
}
或者如果你想要一个完整的重构,并假设C#6.0或更高版本

public int[] practice_5(List<int> items)
{
    return items?.OrderBy(p => p).ToArray();   
}
public int[]实践五(列表项目)
{
返回项目?.OrderBy(p=>p).ToArray();
}

使用ToArray或将方法的返回类型更改为List。如果需要阵列,请删除ToList调用。这只会产生多余的副本。所以您应该
返回items.OrderBy(p=>p.ToArray()
只需在末尾使用toarray即可将返回参数定义为数组,然后尝试返回
列表
。你为什么希望这样做有效?你可能想考虑<代码> iQueDebug < /C>作为你的返回类型,如果出于某种原因,你希望能够返回一个数组和一个列表。谢谢大家,所以我好像没有完全读懂并理解了。我不知道数组有一个等价物。谢谢你解释我代码的这一部分。我是一个开始,我正在尽我所能学习!谢谢你,这就是答案。我现在明白了数组和列表的区别。稍微干净一点是没有其他东西的