C# ArrayList - Sort() 方法

C# ArrayList 的 Sort() 方法用于对 ArrayList 中的元素或 ArrayList 的一部分进行排序。

语法

以下是 C# ArrayList 的 Sort() 方法的语法 -

此语法将对整个 ArrayList 中的元素进行排序。

public virtual void Sort();

此语法将使用指定的比较函数对整个 ArrayList 中的元素进行排序。

public virtual void Sort(System.Collections.IComparer? comparer);

此语法将使用指定的比较函数对 ArrayList 中一定范围内的元素进行排序。

public virtual void Sort(int index, int count, System.Collections.IComparer? comparer);

参数

此方法根据所有重载方法接受以下参数 -

  • comparer:用于比较元素的 IComparer 实现。
  • index:待排序范围的起始索引。
  • count:待排序范围的长度。

返回值

此方法不返回任何值。其返回类型为 void。

示例 1:对整个 ArrayList 进行排序

以下是使用 Sort() 方法对 ArrayList 中的元素进行排序的基本示例 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList arrayList = new ArrayList { 3, 2, 5, 1, 4};
      
      Console.Write("Before Sort: ");
      foreach (var item in arrayList)
      {
         Console.Write(item + " ");
      }
      arrayList.Sort();
      Console.Write("After Sort: ");
      foreach(var item in arrayList){
         Console.Write(item + " ");
      }
   }
}

输出

以下是输出 -

Before Sort: 3 2 5 1 4 
After Sort: 1 2 3 4 5

示例 2:对 ArrayList 中的字符串进行排序

以下示例创建了一个包含一些元素的 ArrayList。然后我们使用 Sort() 方法对 ArrayList 中的元素进行排序 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList arrayList = new ArrayList {
          "The",
          "quick",
          "brown",
          "fox",
          "jumps",
          "over",
          "the"
      };
      
      Console.Write("Before Sort: ");
      foreach (var item in arrayList)
      {
         Console.Write(item + " ");
      }
      arrayList.Sort();
      Console.Write("After Sort: ");
      foreach(var item in arrayList) {
          Console.Write(item + " ");
      }
   }
}

输出

以下是输出 -

Before Sort: The quick brown fox jumps over the 
After Sort: brown fox jumps over quick the The

示例 3:使用比较器进行排序

在此示例中,我们有一个 ArrayList,并使用带有比较器的 sort() 方法对 ArrayList 进行降序排序 -

using System;
using System.Collections;
class DesComparer : IComparer
{
   public int Compare(object x, object y)
   {
      return ((int)y).CompareTo((int)x);
   }
}

class Program
{
   static void Main()
   {
      ArrayList list = new ArrayList() { 5, 2, 8, 1, 3 };

      Console.WriteLine("Before Sorting:");
      foreach (var item in list)
      {
         Console.Write(item + " ");
      }

      list.Sort(new DesComparer());

      Console.WriteLine("After Sorting:");
      foreach (var item in list)
      {
         Console.Write(item + " ");
      }
   }
}

输出

以下是输出 -

Before Sorting:
5 2 8 1 3 
After Sorting:
8 5 3 2 1 

示例 4:按范围排序

以下示例展示了如何使用 Sort() 方法中的默认比较器对 ArrayList 中元素范围内的值进行排序 -

using System;
using System.Collections;
public class SamplesArrayList3
{
   public static void Main()
   {
      // 创建并初始化一个新的 ArrayList。
      ArrayList myAL = new ArrayList();
      myAL.Add("The");
      myAL.Add("QUICK");
      myAL.Add("BROWN");
      myAL.Add("FOX");
      myAL.Add("jumps");

      Console.WriteLine("ArrayList 最初包含以下值:");
      PrintIndexAndValues(myAL);

      myAL.Sort(1, 3, null);
      Console.WriteLine("使用默认比较器从索引 1 到索引 3 排序后:");
      PrintIndexAndValues(myAL);
   }
   public static void PrintIndexAndValues(IEnumerable myList)
   {
      int i = 0;
      foreach (Object obj in myList)
         Console.WriteLine("	[{0}]:	{1}", i++, obj);
      Console.WriteLine();
   }
}

输出

以下是输出 -

ArrayList 最初包含以下值:
	[0]:	The
	[1]:	QUICK
	[2]:	BROWN
	[3]:	FOX
	[4]:	jumps

使用默认比较器从索引 1 到索引 3 排序后:
	[0]:	The
	[1]:	BROWN
	[2]:	FOX
	[3]:	QUICK
	[4]:	jumps

csharp_arraylist.html