在 C# 中以降序对数组进行排序

本文将介绍在 C# 中以降序对数组进行排序的不同方法。

使用 Array.Sort()Array.Reverse() 方法在 C# 中以降序对数组进行排序

我们将使用两种方法 Array.sort()Array.Reverse() 一起对数组进行降序排序。Array.Sort() 方法以升序对数组进行排序。我们将使用 Array.Reverse() 方法反转数组,以降序对数组进行排序。这些方法有很多重载。使用这些方法的正确语法如下。

Array.Sort(Array array);

方法 Sort() 的重载只有一个参数。其参数的详细内容如下

参数 描述
array 强制的 这是我们要排序的数组。

此函数以升序对数组进行排序。

Array.Reverse(Array array);

方法 Reverse() 的重载只有一个参数。其参数的详细信息如下。

参数 描述
array 强制的 这是我们要反转的数组。

此函数反转给定的数组。

下面的程序显示了如何使用 Sort()Reverse() 方法对数组进行降序排序。

using System;
class Sort {
      public static void Main()
    {
        int[] arr = new int[] {2, 10, 5, 8, 4, 11};
        Console.WriteLine("Array Before Sorting:\n");
        foreach(int value in arr)
        {
            Console.Write(value + " ");
        }
        Console.WriteLine("\n");
        Array.Sort(arr);
        Array.Reverse(arr);
        Console.WriteLine("Array After Sorting:\n");
        foreach(int value in arr)
        {
            Console.Write(value + " ");
        }
    }
}

输出:

Array Before Sorting:
2 10 5 8 4 11
Array After Sorting:
11 10 8 5 4 2

使用 OrderByDescending() 方法在 C# 中以降序对数组进行排序

在 C# 中,我们还可以使用 LINQ 的 OrderByDescending() 方法以降序对数组进行排序。此方法有多个重载。我们将使用的重载有两个参数。使用此方法的正确语法如下。

Array.OrderByDescending(source, keySelector);

其参数的详细信息如下

参数 描述
source 它是要排序的值的序列。
keySelector 这是一个从元素中提取键的函数。

此函数对数组进行排序并返回 IOrderedEnumerable。我们将使用 ToArray() 方法将其转换为数组。

下面的程序显示了如何使用 OrderByDescending() 方法以降序对数组进行排序。

using System;
using System.Linq;
class Sort {
    public static void Main()
    {
        int[] arr = new int[] {2, 10, 5, 8, 4, 11};
        Console.WriteLine("Array Before Sorting:\n");
        foreach(int value in arr)
        {
            Console.Write(value + " ");
        }
        Console.WriteLine("\n");
        arr = arr.OrderByDescending(c => c).ToArray();
        Console.WriteLine("Array After Sorting:\n");
        foreach(int value in arr)
        {
            Console.Write(value + " ");
        }
    }
}

输出:

Array Before Sorting:
2 10 5 8 4 11
Array After Sorting:
11 10 8 5 4 2